import matplotlib as mpl
%matplotlib inline
from PIL import Image
import numpy as np
import pandas as pd
import os
from skimage.color import gray2rgb
import matplotlib.pyplot as plt
import matplotlib.cm as cm
from mpl_toolkits.axes_grid1 import ImageGrid
from sklearn.utils import shuffle
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import activations
from tensorflow.keras.preprocessing import image
from tensorflow.keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Input, concatenate, Dense, Dropout, Activation, Flatten, GaussianNoise, BatchNormalization, GlobalAveragePooling2D, Conv2D, MaxPooling2D
from tensorflow.keras.optimizers import Adam, RMSprop
from tensorflow.keras.applications.inception_v3 import InceptionV3
from tensorflow.keras.applications.resnet50 import ResNet50
from tensorflow.keras.applications.inception_resnet_v2 import InceptionResNetV2
from tensorflow.keras.models import Model
from sklearn.metrics import confusion_matrix
from sklearn.metrics import accuracy_score
from sklearn.metrics import roc_auc_score
from tensorflow.keras.models import model_from_json
from tensorflow.keras import backend as K
from tensorflow.keras.utils import to_categorical
from tf_keras_vis.gradcam import Gradcam
from tf_keras_vis.saliency import Saliency
from tf_keras_vis.utils import normalize
from sklearn.metrics import classification_report
# Define image size
mpl.rcParams['figure.figsize'] = (20,24)
We have trained our CNNs with a training set of:
-369 normal MRI images from 19 control patients
-401 MRI images of diffuse malformations of cortical development from 27 patients
And a validation set of:
-159 normal MRI images from 8 control patients
-147 MRI images of diffuse malformations of cortical development from 10 patients
# Unzip files
!unzip ~/data/Controltrain.zip -d ~/data/
!unzip ~/data/Controlval.zip -d ~/data/
!unzip ~/data/CMtrain.zip -d ~/data/
!unzip ~/data/CMval.zip -d ~/data/
# Remove the zipped files
!rm ~/data/Controltrain.zip
!rm ~/data/Controlval.zip
!rm ~/data/CMtrain.zip
!rm ~/data/CMval.zip
Archive: /home/ubuntu/data/Controltrain.zip inflating: /home/ubuntu/data/Controltrain/26.1_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/26.10_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/26.11_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/26.12_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/26.13_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/26.14_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/26.15_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/26.16_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/26.17_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/26.2_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/26.3_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/26.4_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/26.5_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/26.6_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/26.7_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/26.8_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/26.9_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/27.1_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/27.10_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/27.11_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/27.12_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/27.13_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/27.14_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/27.15_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/27.16_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/27.17_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/27.18_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/27.2_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/27.3_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/27.4_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/27.5_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/27.6_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/27.7_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/27.8_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/27.9_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/28.1_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/28.10_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/28.11_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/28.2_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/28.3_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/28.4_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/28.5_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/28.6_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/28.7_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/28.8_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/28.9_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/29.1_COR SPACE FLAIR RECON_58.jpg inflating: /home/ubuntu/data/Controltrain/29.10_COR SPACE FLAIR RECON_95.jpg inflating: /home/ubuntu/data/Controltrain/29.11_COR SPACE FLAIR RECON_102.jpg inflating: /home/ubuntu/data/Controltrain/29.12_COR SPACE FLAIR RECON_115.jpg inflating: /home/ubuntu/data/Controltrain/29.13_AX MPRAGE RECON_80.jpg inflating: /home/ubuntu/data/Controltrain/29.14_AX MPRAGE RECON_85.jpg inflating: /home/ubuntu/data/Controltrain/29.15_AX MPRAGE RECON_92.jpg inflating: /home/ubuntu/data/Controltrain/29.16_AX MPRAGE RECON_99.jpg inflating: /home/ubuntu/data/Controltrain/29.17_AX MPRAGE RECON_109.jpg inflating: /home/ubuntu/data/Controltrain/29.18_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/29.19_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/29.2_COR SPACE FLAIR RECON_61.jpg inflating: /home/ubuntu/data/Controltrain/29.20_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/29.21_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/29.22_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/29.23_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/29.24_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/29.25_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/29.26_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/29.27_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/29.28_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/29.29_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/29.3_COR SPACE FLAIR RECON_64.jpg inflating: /home/ubuntu/data/Controltrain/29.30_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/29.31_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/29.32_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/29.33_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/29.34_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/29.35_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/29.36_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/29.37_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/29.38_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/29.4_COR SPACE FLAIR RECON_67.jpg inflating: /home/ubuntu/data/Controltrain/29.5_COR SPACE FLAIR RECON_71.jpg inflating: /home/ubuntu/data/Controltrain/29.6_COR SPACE FLAIR RECON_76.jpg inflating: /home/ubuntu/data/Controltrain/29.7_COR SPACE FLAIR RECON_80.jpg inflating: /home/ubuntu/data/Controltrain/29.8_COR SPACE FLAIR RECON_85.jpg inflating: /home/ubuntu/data/Controltrain/29.9_COR SPACE FLAIR RECON_90.jpg inflating: /home/ubuntu/data/Controltrain/30.1_COR FLAIR SPACE RECON_53.jpg inflating: /home/ubuntu/data/Controltrain/30.10_AX FLAIR SPACE RECON_74.jpg inflating: /home/ubuntu/data/Controltrain/30.11_AX FLAIR SPACE RECON_79.jpg inflating: /home/ubuntu/data/Controltrain/30.12_AX FLAIR SPACE RECON_83.jpg inflating: /home/ubuntu/data/Controltrain/30.13_AX FLAIR SPACE RECON_86.jpg inflating: /home/ubuntu/data/Controltrain/30.14_AX FLAIR SPACE RECON_90.jpg inflating: /home/ubuntu/data/Controltrain/30.15_AX FLAIR SPACE RECON_93.jpg inflating: /home/ubuntu/data/Controltrain/30.16_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/30.17_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/30.18_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/30.2_COR FLAIR SPACE RECON_63.jpg inflating: /home/ubuntu/data/Controltrain/30.3_COR FLAIR SPACE RECON_70.jpg inflating: /home/ubuntu/data/Controltrain/30.4_COR FLAIR SPACE RECON_75.jpg inflating: /home/ubuntu/data/Controltrain/30.5_COR FLAIR SPACE RECON_84.jpg inflating: /home/ubuntu/data/Controltrain/30.6_COR FLAIR SPACE RECON_92.jpg inflating: /home/ubuntu/data/Controltrain/30.7_COR FLAIR SPACE RECON_99.jpg inflating: /home/ubuntu/data/Controltrain/30.8_COR FLAIR SPACE RECON_104.jpg inflating: /home/ubuntu/data/Controltrain/30.9_AX FLAIR SPACE RECON_70.jpg inflating: /home/ubuntu/data/Controltrain/31.1_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/31.10_COR MPRAGE RECON_77.jpg inflating: /home/ubuntu/data/Controltrain/31.11_COR MPRAGE RECON_81.jpg inflating: /home/ubuntu/data/Controltrain/31.12_COR MPRAGE RECON_87.jpg inflating: /home/ubuntu/data/Controltrain/31.13_AX MPRAGE RECON_92.jpg inflating: /home/ubuntu/data/Controltrain/31.14_AX MPRAGE RECON_96.jpg inflating: /home/ubuntu/data/Controltrain/31.15_AX MPRAGE RECON_102.jpg inflating: /home/ubuntu/data/Controltrain/31.16_AX MPRAGE RECON_107.jpg inflating: /home/ubuntu/data/Controltrain/31.17_AX MPRAGE RECON_116.jpg inflating: /home/ubuntu/data/Controltrain/31.18_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/31.19_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/31.2_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/31.20_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/31.21_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/31.22_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/31.23_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/31.24_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/31.25_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/31.26_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/31.27_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/31.28_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/31.29_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/31.3_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/31.30_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/31.31_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/31.32_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/31.33_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/31.34_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/31.4_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/31.5_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/31.6_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/31.7_COR MPRAGE RECON_58.jpg inflating: /home/ubuntu/data/Controltrain/31.8_COR MPRAGE RECON_66.jpg inflating: /home/ubuntu/data/Controltrain/31.9_COR MPRAGE RECON_72.jpg inflating: /home/ubuntu/data/Controltrain/32.1_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/32.10_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/32.11_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/32.12_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/32.13_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/32.14_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/32.15_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/32.16_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/32.17_SAGITTAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/32.18_SAGITTAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/32.19_SAGITTAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/32.2_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/32.3_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/32.4_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/32.5_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/32.6_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/32.7_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/32.8_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/32.9_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.1_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.10_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.11_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.12_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.13_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.14_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.15_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.16_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.17_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.18_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.19_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/33.2_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.20_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/33.21_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/33.22_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/33.23_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/33.24_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/33.25_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/33.26_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/33.27_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/33.28_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/33.29_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.3_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.30_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.31_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.32_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.33_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.34_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.35_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.36_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.37_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.38_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.39_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.4_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.40_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.41_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.42_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.5_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.6_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.7_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.8_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/33.9_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/34.1_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/34.10_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/34.11_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/34.12_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/34.13_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/34.14_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/34.15_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/34.16_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/34.17_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/34.18_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/34.19_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/34.2_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/34.20_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/34.21_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/34.22_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/34.23_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/34.24_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/34.25_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/34.26_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/34.3_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/34.4_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/34.5_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/34.6_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/34.7_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/34.8_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/34.9_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/35.1_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/35.10_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/35.11_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/35.2_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/35.3_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/35.4_AX MPR_84.jpg inflating: /home/ubuntu/data/Controltrain/35.5_AX MPR_91.jpg inflating: /home/ubuntu/data/Controltrain/35.6_AX MPR_96.jpg inflating: /home/ubuntu/data/Controltrain/35.7_AX MPR_104.jpg inflating: /home/ubuntu/data/Controltrain/35.8_AX MPR_113.jpg inflating: /home/ubuntu/data/Controltrain/35.9_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/36.1_AX MPR RECON_128.jpg inflating: /home/ubuntu/data/Controltrain/36.10_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/36.11_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/36.12_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/36.2_AX MPR RECON_135.jpg inflating: /home/ubuntu/data/Controltrain/36.3_AX MPR RECON_144.jpg inflating: /home/ubuntu/data/Controltrain/36.4_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/36.5_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/36.6_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/36.7_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/36.8_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/36.9_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/37.1_CORONAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/37.10_AXIAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/37.11_AXIAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/37.12_AXIAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/37.13_AXIAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/37.14_COR MPR RECON_67.jpg inflating: /home/ubuntu/data/Controltrain/37.15_COR MPR RECON_72.jpg inflating: /home/ubuntu/data/Controltrain/37.16_COR MPR RECON_76.jpg inflating: /home/ubuntu/data/Controltrain/37.17_COR MPR RECON_84.jpg inflating: /home/ubuntu/data/Controltrain/37.18_COR MPR RECON_90.jpg inflating: /home/ubuntu/data/Controltrain/37.19_COR MPR RECON_97.jpg inflating: /home/ubuntu/data/Controltrain/37.2_CORONAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/37.20_COR MPR RECON_103.jpg inflating: /home/ubuntu/data/Controltrain/37.21_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/37.22_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/37.23_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/37.24_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/37.25_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/37.26_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/37.27_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/37.28_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/37.29_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/37.3_CORONAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/37.30_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/37.31_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/37.32_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/37.33_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/37.34_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/37.35_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/37.4_CORONAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/37.5_CORONAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/37.6_CORONAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/37.7_CORONAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/37.8_CORONAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/37.9_AXIAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/38.1_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/38.10_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/38.11_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/38.12_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/38.13_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/38.14_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/38.15_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/38.16_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/38.17_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/38.2_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/38.3_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/38.4_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/38.5_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/38.6_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/38.7_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/38.8_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/38.9_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controltrain/39.1_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/39.2_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/39.3_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/39.4_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/39.5_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/39.6_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/39.7_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/40.1_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/40.10_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/40.11_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/40.12_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/40.13_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/40.2_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/40.3_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/40.4_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/40.5_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/40.6_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/40.7_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/40.8_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/40.9_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/41.1_SAGITTAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/41.10_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/41.11_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/41.12_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/41.2_SAGITTAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/41.3_SAGITTAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/41.4_SAGITTAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/41.5_SAGITTAL_T1.jpg inflating: /home/ubuntu/data/Controltrain/41.6_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/41.7_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/41.8_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/41.9_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/42.1_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/42.10_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/42.11_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/42.12_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/42.13_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/42.14_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/42.15_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/42.16_CORONAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/42.17_CORONAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/42.2_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/42.3_AXIAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/42.4_AXIAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/42.5_AXIAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/42.6_AXIAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/42.7_AXIAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controltrain/42.8_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/42.9_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/43.1_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/43.11_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/43.12_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/43.13_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/43.14_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/43.15_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/43.16_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/43.17_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/43.18_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/43.2_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/43.3_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/44.1_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/44.10_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/44.11_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/44.2_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/44.3_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/44.4_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/44.5_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/44.6_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/44.7_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controltrain/44.8_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controltrain/44.9_CORONAL_T2.jpg Archive: /home/ubuntu/data/Controlval.zip inflating: /home/ubuntu/data/Controlval/18.1_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.10_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.11_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.12_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.13_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/18.14_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/18.15_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/18.16_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/18.17_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/18.18_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/18.19_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/18.2_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.20_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.21_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.22_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.23_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.24_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.25_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.26_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.27_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.28_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.29_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.3_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.30_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.31_COR T2 RECON_62.jpg inflating: /home/ubuntu/data/Controlval/18.32_COR T2 RECON_68.jpg inflating: /home/ubuntu/data/Controlval/18.33_COR T2 RECON_73.jpg inflating: /home/ubuntu/data/Controlval/18.34_COR T2 RECON_79.jpg inflating: /home/ubuntu/data/Controlval/18.35_COR T2 RECON_84.jpg inflating: /home/ubuntu/data/Controlval/18.36_COR T2 RECON_92.jpg inflating: /home/ubuntu/data/Controlval/18.37_COR T2 RECON_97.jpg inflating: /home/ubuntu/data/Controlval/18.38_COR T2 RECON_105.jpg inflating: /home/ubuntu/data/Controlval/18.39_COR T2 RECON_110.jpg inflating: /home/ubuntu/data/Controlval/18.4_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.40_COR T2 RECON_116.jpg inflating: /home/ubuntu/data/Controlval/18.5_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.6_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.7_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.8_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/18.9_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/19.1_AX FLAIR_85.jpg inflating: /home/ubuntu/data/Controlval/19.10_AX FLAIR_142.jpg inflating: /home/ubuntu/data/Controlval/19.15_AX RECON_80.jpg inflating: /home/ubuntu/data/Controlval/19.16_AX RECON_88.jpg inflating: /home/ubuntu/data/Controlval/19.17_AX RECON_93.jpg inflating: /home/ubuntu/data/Controlval/19.18_AX RECON_102.jpg inflating: /home/ubuntu/data/Controlval/19.19_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/19.2_AX FLAIR_91.jpg inflating: /home/ubuntu/data/Controlval/19.20_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/19.21_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/19.3_AX FLAIR_97.jpg inflating: /home/ubuntu/data/Controlval/19.4_AX FLAIR_104.jpg inflating: /home/ubuntu/data/Controlval/19.5_AX FLAIR_110.jpg inflating: /home/ubuntu/data/Controlval/19.6_AX FLAIR_119.jpg inflating: /home/ubuntu/data/Controlval/19.7_AX FLAIR_124.jpg inflating: /home/ubuntu/data/Controlval/19.8_AX FLAIR_129.jpg inflating: /home/ubuntu/data/Controlval/19.9_AX FLAIR_135.jpg inflating: /home/ubuntu/data/Controlval/20.1_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/20.10_AX T2 SPACE RECON_119.jpg inflating: /home/ubuntu/data/Controlval/20.11_AX T2 SPACE RECON_124.jpg inflating: /home/ubuntu/data/Controlval/20.12_AX T2 SPACE RECON_129.jpg inflating: /home/ubuntu/data/Controlval/20.2_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/20.3_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/20.4_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/20.5_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/20.6_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/20.7_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/20.8_AX T2 SPACE RECON_108.jpg inflating: /home/ubuntu/data/Controlval/20.9_AX T2 SPACE RECON_114.jpg inflating: /home/ubuntu/data/Controlval/21.1_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controlval/21.10_AXIAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controlval/21.11_AXIAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controlval/21.12_AXIAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controlval/21.2_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controlval/21.3_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controlval/21.4_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/21.5_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/21.6_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/21.7_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/21.8_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/21.9_AXIAL_T2.jpg inflating: /home/ubuntu/data/Controlval/22.1_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controlval/22.10_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/22.11_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/22.12_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/22.13_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/22.14_AX MPRAGE_100.jpg inflating: /home/ubuntu/data/Controlval/22.15_AX MPRAGE_104.jpg inflating: /home/ubuntu/data/Controlval/22.16_AX MPRAGE_110.jpg inflating: /home/ubuntu/data/Controlval/22.17_AX MPRAGE_115.jpg inflating: /home/ubuntu/data/Controlval/22.18_AX MPRAGE_120.jpg inflating: /home/ubuntu/data/Controlval/22.19_AX MPRAGE_127.jpg inflating: /home/ubuntu/data/Controlval/22.2_SAGITTAL_MPRAGE.jpg inflating: /home/ubuntu/data/Controlval/22.20_AX MPRAGE_135.jpg inflating: /home/ubuntu/data/Controlval/22.21_COR MPRAGE_40.jpg inflating: /home/ubuntu/data/Controlval/22.22_COR MPRAGE_46.jpg inflating: /home/ubuntu/data/Controlval/22.23_COR MPRAGE_52.jpg inflating: /home/ubuntu/data/Controlval/22.24_COR MPRAGE_58.jpg inflating: /home/ubuntu/data/Controlval/22.25_COR MPRAGE_72.jpg inflating: /home/ubuntu/data/Controlval/22.26_COR MPRAGE_82.jpg inflating: /home/ubuntu/data/Controlval/22.27_COR MPRAGE_89.jpg inflating: /home/ubuntu/data/Controlval/22.28_COR MPRAGE_97.jpg inflating: /home/ubuntu/data/Controlval/22.29_COR MPRAGE_105.jpg inflating: /home/ubuntu/data/Controlval/22.3_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/22.4_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/22.5_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/22.6_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/22.7_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/22.8_AXIAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/22.9_SAGITTAL_FLAIR.jpg inflating: /home/ubuntu/data/Controlval/23.1_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controlval/23.10_COR MPRAGE RECON_100.jpg inflating: /home/ubuntu/data/Controlval/23.11_COR MPRAGE RECON_113.jpg inflating: /home/ubuntu/data/Controlval/23.12_COR MPRAGE RECON_118.jpg inflating: /home/ubuntu/data/Controlval/23.13_COR MPRAGE RECON_128.jpg inflating: /home/ubuntu/data/Controlval/23.2_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controlval/23.3_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controlval/23.4_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/23.5_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/23.6_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/23.7_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/23.8_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/23.9_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/24.1_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controlval/24.10_mprage- ax_107.jpg inflating: /home/ubuntu/data/Controlval/24.11_mprage- ax_112.jpg inflating: /home/ubuntu/data/Controlval/24.12_mprage- ax_116.jpg inflating: /home/ubuntu/data/Controlval/24.13_mprage- ax_121.jpg inflating: /home/ubuntu/data/Controlval/24.14_mprage- ax_126.jpg inflating: /home/ubuntu/data/Controlval/24.15_mprage- ax_133.jpg inflating: /home/ubuntu/data/Controlval/24.16_mprage- ax_140.jpg inflating: /home/ubuntu/data/Controlval/24.17_mprage- ax_150.jpg inflating: /home/ubuntu/data/Controlval/24.18_mprage- ax_154.jpg inflating: /home/ubuntu/data/Controlval/24.19_mprage- ax_158.jpg inflating: /home/ubuntu/data/Controlval/24.2_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controlval/24.20_mprage- ax_162.jpg inflating: /home/ubuntu/data/Controlval/24.3_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controlval/24.4_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controlval/24.5_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/24.6_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/24.7_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/24.8_mprage- ax_100.jpg inflating: /home/ubuntu/data/Controlval/24.9_mprage- ax_103.jpg inflating: /home/ubuntu/data/Controlval/25.1_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controlval/25.10_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/25.11_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/25.12_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/25.13_COR MPRAGE RECON_111.jpg inflating: /home/ubuntu/data/Controlval/25.14_COR MPRAGE RECON_120.jpg inflating: /home/ubuntu/data/Controlval/25.15_COR MPRAGE RECON_127.jpg inflating: /home/ubuntu/data/Controlval/25.16_COR MPRAGE RECON_138.jpg inflating: /home/ubuntu/data/Controlval/25.2_AXIAL_TSE.jpg inflating: /home/ubuntu/data/Controlval/25.3_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/25.4_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/25.5_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/25.6_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/25.7_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/25.8_CORONAL_T2.jpg inflating: /home/ubuntu/data/Controlval/25.9_CORONAL_T2.jpg Archive: /home/ubuntu/data/CMtrain.zip inflating: /home/ubuntu/data/CMtrain/25.1_AX T2_35.jpg inflating: /home/ubuntu/data/CMtrain/25.10_COR T2_12.jpg inflating: /home/ubuntu/data/CMtrain/25.11_COR T2_13.jpg inflating: /home/ubuntu/data/CMtrain/25.12_COR T2_14.jpg inflating: /home/ubuntu/data/CMtrain/25.13_COR T2_16.jpg inflating: /home/ubuntu/data/CMtrain/25.14_COR T2_17.jpg inflating: /home/ubuntu/data/CMtrain/25.2_AX T2_38.jpg inflating: /home/ubuntu/data/CMtrain/25.3_AX T2_41.jpg inflating: /home/ubuntu/data/CMtrain/25.4_AX T2_44.jpg inflating: /home/ubuntu/data/CMtrain/25.5_AX T2_47.jpg inflating: /home/ubuntu/data/CMtrain/25.6_AX T2_50.jpg inflating: /home/ubuntu/data/CMtrain/25.7_AX T2 FLAIR_23.jpg inflating: /home/ubuntu/data/CMtrain/25.8_AX T2 FLAIR_25.jpg inflating: /home/ubuntu/data/CMtrain/25.9_AX T2 FLAIR_28.jpg inflating: /home/ubuntu/data/CMtrain/26.1_AX T2 TSE_30.jpg inflating: /home/ubuntu/data/CMtrain/26.10_COR T2 TSE (ANGLED)_31.jpg inflating: /home/ubuntu/data/CMtrain/26.11_COR T2 TSE (ANGLED)_33.jpg inflating: /home/ubuntu/data/CMtrain/26.12_COR T2 TSE (ANGLED)_35.jpg inflating: /home/ubuntu/data/CMtrain/26.13_mocoMEMPRAGE FOV 220 RMS_122.jpg inflating: /home/ubuntu/data/CMtrain/26.14_mocoMEMPRAGE FOV 220 RMS_125.jpg inflating: /home/ubuntu/data/CMtrain/26.15_mocoMEMPRAGE FOV 220 RMS_127.jpg inflating: /home/ubuntu/data/CMtrain/26.16_mocoMEMPRAGE FOV 220 RMS_129.jpg inflating: /home/ubuntu/data/CMtrain/26.17_mocoMEMPRAGE FOV 220 RMS_131.jpg inflating: /home/ubuntu/data/CMtrain/26.2_AX T2 TSE_33.jpg inflating: /home/ubuntu/data/CMtrain/26.3_AX T2 TSE_36.jpg inflating: /home/ubuntu/data/CMtrain/26.4_AX T2 TSE_39.jpg inflating: /home/ubuntu/data/CMtrain/26.5_AX T2 TSE_42.jpg inflating: /home/ubuntu/data/CMtrain/26.6_AX T2 TSE_45.jpg inflating: /home/ubuntu/data/CMtrain/26.7_COR T2 TSE (ANGLED)_25.jpg inflating: /home/ubuntu/data/CMtrain/26.8_COR T2 TSE (ANGLED)_27.jpg inflating: /home/ubuntu/data/CMtrain/26.9_COR T2 TSE (ANGLED)_29.jpg inflating: /home/ubuntu/data/CMtrain/27.1_AX_T2_STEALTH_50.jpg inflating: /home/ubuntu/data/CMtrain/27.10_COR_T2_11.jpg inflating: /home/ubuntu/data/CMtrain/27.11_COR_T2_14.jpg inflating: /home/ubuntu/data/CMtrain/27.12_COR_T2_17.jpg inflating: /home/ubuntu/data/CMtrain/27.13_COR_T2_20.jpg inflating: /home/ubuntu/data/CMtrain/27.14_COR_T2_23.jpg inflating: /home/ubuntu/data/CMtrain/27.2_AX_T2_STEALTH_52.jpg inflating: /home/ubuntu/data/CMtrain/27.3_AX_T2_STEALTH_54.jpg inflating: /home/ubuntu/data/CMtrain/27.4_AX_T2_STEALTH_56.jpg inflating: /home/ubuntu/data/CMtrain/27.5_AX_T2_STEALTH_58.jpg inflating: /home/ubuntu/data/CMtrain/27.6_AX_T2_STEALTH_60.jpg inflating: /home/ubuntu/data/CMtrain/27.7_AX_T2 FLAIR_fs_20.jpg inflating: /home/ubuntu/data/CMtrain/27.8_AX_T2 FLAIR_fs_22.jpg inflating: /home/ubuntu/data/CMtrain/27.9_AX_T2 FLAIR_fs_24.jpg inflating: /home/ubuntu/data/CMtrain/28.1_21802987_AX T2-BR_14.jpg inflating: /home/ubuntu/data/CMtrain/28.2_21802987_AX T2-BR_16.jpg inflating: /home/ubuntu/data/CMtrain/28.3_21802987_AX T2-BR_18.jpg inflating: /home/ubuntu/data/CMtrain/28.4_21802987_AX T2-BR_19.jpg inflating: /home/ubuntu/data/CMtrain/28.5_AX T2 FLAIR-BR_15.jpg inflating: /home/ubuntu/data/CMtrain/28.6_AX T2 FLAIR-BR_17.jpg inflating: /home/ubuntu/data/CMtrain/28.7_AX T2 FLAIR-BR_19.jpg inflating: /home/ubuntu/data/CMtrain/28.8_COR T2-BR_26.jpg inflating: /home/ubuntu/data/CMtrain/28.9_COR T2-BR_28.jpg inflating: /home/ubuntu/data/CMtrain/29.1_AxFSET2_15.jpg inflating: /home/ubuntu/data/CMtrain/29.10_CORFSET2_7.jpg inflating: /home/ubuntu/data/CMtrain/29.11_CORFSET2_8.jpg inflating: /home/ubuntu/data/CMtrain/29.12_CORFSET2_9.jpg inflating: /home/ubuntu/data/CMtrain/29.13_CORFSET2_10.jpg inflating: /home/ubuntu/data/CMtrain/29.14_CORFSET2_11.jpg inflating: /home/ubuntu/data/CMtrain/29.2_AxFSET2_16.jpg inflating: /home/ubuntu/data/CMtrain/29.3_AxFSET2_17.jpg inflating: /home/ubuntu/data/CMtrain/29.4_AxFSET2_18.jpg inflating: /home/ubuntu/data/CMtrain/29.5_AxFSET2_19.jpg inflating: /home/ubuntu/data/CMtrain/29.6_AxFLAIR_15.jpg inflating: /home/ubuntu/data/CMtrain/29.7_AxFLAIR_16.jpg inflating: /home/ubuntu/data/CMtrain/29.8_AxFLAIR_17.jpg inflating: /home/ubuntu/data/CMtrain/29.9_AxFLAIR_18.jpg inflating: /home/ubuntu/data/CMtrain/30.1_AXIAL TSE T2_37.jpg inflating: /home/ubuntu/data/CMtrain/30.10_COR T2 HI RES_4.jpg inflating: /home/ubuntu/data/CMtrain/30.11_COR T2 HI RES_7.jpg inflating: /home/ubuntu/data/CMtrain/30.12_COR T2 HI RES_10.jpg inflating: /home/ubuntu/data/CMtrain/30.13_COR T2 HI RES_13.jpg inflating: /home/ubuntu/data/CMtrain/30.14_COR T2 HI RES_16.jpg inflating: /home/ubuntu/data/CMtrain/30.2_AXIAL TSE T2_39.jpg inflating: /home/ubuntu/data/CMtrain/30.3_AXIAL TSE T2_42.jpg inflating: /home/ubuntu/data/CMtrain/30.4_AXIAL TSE T2_44.jpg inflating: /home/ubuntu/data/CMtrain/30.5_AXIAL TSE T2_35.jpg inflating: /home/ubuntu/data/CMtrain/30.6_AXT2FLAIR_33.jpg inflating: /home/ubuntu/data/CMtrain/30.7_AXT2FLAIR_27.jpg inflating: /home/ubuntu/data/CMtrain/30.8_AXT2FLAIR_29.jpg inflating: /home/ubuntu/data/CMtrain/30.9_AXT2FLAIR_31.jpg inflating: /home/ubuntu/data/CMtrain/31.1_1.2.840.113619.2.135.2025.1773586.7665.1123171383.347_17.jpg inflating: /home/ubuntu/data/CMtrain/31.10_1.2.840.113619.2.135.2025.1773586.7665.1123171383.622_20.jpg inflating: /home/ubuntu/data/CMtrain/31.2_1.2.840.113619.2.135.2025.1773586.7665.1123171383.348_18.jpg inflating: /home/ubuntu/data/CMtrain/31.3_1.2.840.113619.2.135.2025.1773586.7665.1123171383.349_19.jpg inflating: /home/ubuntu/data/CMtrain/31.4_1.2.840.113619.2.135.2025.1773586.7665.1123171383.350_20.jpg inflating: /home/ubuntu/data/CMtrain/31.5_1.2.840.113619.2.135.2025.1773586.7665.1123171383.429_17.jpg inflating: /home/ubuntu/data/CMtrain/31.6_1.2.840.113619.2.135.2025.1773586.7665.1123171383.526_6.jpg inflating: /home/ubuntu/data/CMtrain/31.7_1.2.840.113619.2.135.2025.1773586.7665.1123171383.619_17.jpg inflating: /home/ubuntu/data/CMtrain/31.8_1.2.840.113619.2.135.2025.1773586.7665.1123171383.620_18.jpg inflating: /home/ubuntu/data/CMtrain/31.9_1.2.840.113619.2.135.2025.1773586.7665.1123171383.621_19.jpg inflating: /home/ubuntu/data/CMtrain/32.1_T2 TSE Axial_41.jpg inflating: /home/ubuntu/data/CMtrain/32.10_AX MPR RECONS_85.jpg inflating: /home/ubuntu/data/CMtrain/32.11_AX MPR RECONS_87.jpg inflating: /home/ubuntu/data/CMtrain/32.12_AX MPR RECONS_89.jpg inflating: /home/ubuntu/data/CMtrain/32.13_AX MPR RECONS_91.jpg inflating: /home/ubuntu/data/CMtrain/32.14_COR MPR RECONS_52.jpg inflating: /home/ubuntu/data/CMtrain/32.15_COR MPR RECONS_55.jpg inflating: /home/ubuntu/data/CMtrain/32.16_COR MPR RECONS_58.jpg inflating: /home/ubuntu/data/CMtrain/32.17_COR MPR RECONS_61.jpg inflating: /home/ubuntu/data/CMtrain/32.18_COR MPR RECONS_64.jpg inflating: /home/ubuntu/data/CMtrain/32.19_COR MPR RECONS_67.jpg inflating: /home/ubuntu/data/CMtrain/32.2_T2 TSE Axial_43.jpg inflating: /home/ubuntu/data/CMtrain/32.20_COR MPR RECONS_70.jpg inflating: /home/ubuntu/data/CMtrain/32.21_COR MPR RECONS_73.jpg inflating: /home/ubuntu/data/CMtrain/32.22_COR MPR RECONS_76.jpg inflating: /home/ubuntu/data/CMtrain/32.3_T2 TSE Axial_45.jpg inflating: /home/ubuntu/data/CMtrain/32.4_T2 TSE Axial_47.jpg inflating: /home/ubuntu/data/CMtrain/32.5_T2 TSE Axial_49.jpg inflating: /home/ubuntu/data/CMtrain/32.6_T2 TSE Axial_51.jpg inflating: /home/ubuntu/data/CMtrain/32.7_AXT2FLAIR_22.jpg inflating: /home/ubuntu/data/CMtrain/32.8_AXT2FLAIR_24.jpg inflating: /home/ubuntu/data/CMtrain/32.9_AXT2FLAIR_26.jpg inflating: /home/ubuntu/data/CMtrain/33.1_AX TSE T2 (TRIO PARAMETERS)_40.jpg inflating: /home/ubuntu/data/CMtrain/33.10_COR FSE T2 (ANGLED)_36.jpg inflating: /home/ubuntu/data/CMtrain/33.11_COR FSE T2 (ANGLED)_38.jpg inflating: /home/ubuntu/data/CMtrain/33.12_COR FSE T2 (ANGLED)_40.jpg inflating: /home/ubuntu/data/CMtrain/33.13_COR FSE T2 (ANGLED)_42.jpg inflating: /home/ubuntu/data/CMtrain/33.14_COR FSE T2 (ANGLED)_44.jpg inflating: /home/ubuntu/data/CMtrain/33.2_AX TSE T2 (TRIO PARAMETERS)_42.jpg inflating: /home/ubuntu/data/CMtrain/33.3_AX TSE T2 (TRIO PARAMETERS)_44.jpg inflating: /home/ubuntu/data/CMtrain/33.4_AX TSE T2 (TRIO PARAMETERS)_46.jpg inflating: /home/ubuntu/data/CMtrain/33.5_AX TSE T2 (TRIO PARAMETERS)_48.jpg inflating: /home/ubuntu/data/CMtrain/33.6_AX TSE T2 (TRIO PARAMETERS)_50.jpg inflating: /home/ubuntu/data/CMtrain/33.7_COR FSE T2 (ANGLED)_30.jpg inflating: /home/ubuntu/data/CMtrain/33.8_COR FSE T2 (ANGLED)_32.jpg inflating: /home/ubuntu/data/CMtrain/33.9_COR FSE T2 (ANGLED)_34.jpg inflating: /home/ubuntu/data/CMtrain/34.1_t2_tse_cor_10.jpg inflating: /home/ubuntu/data/CMtrain/34.10_t2_tse_tra_26.jpg inflating: /home/ubuntu/data/CMtrain/34.11_t2_tse_tra_28.jpg inflating: /home/ubuntu/data/CMtrain/34.12_t2_tse_tra_30.jpg inflating: /home/ubuntu/data/CMtrain/34.13_t2_tse_tra_32.jpg inflating: /home/ubuntu/data/CMtrain/34.14_t2_tse_tra_34.jpg inflating: /home/ubuntu/data/CMtrain/34.2_t2_tse_cor_12.jpg inflating: /home/ubuntu/data/CMtrain/34.3_t2_tse_cor_14.jpg inflating: /home/ubuntu/data/CMtrain/34.4_t2_tse_cor_16.jpg inflating: /home/ubuntu/data/CMtrain/34.5_t2_tse_cor_18.jpg inflating: /home/ubuntu/data/CMtrain/34.6_t2_tse_cor_20.jpg inflating: /home/ubuntu/data/CMtrain/34.7_t2_tse_tra_20.jpg inflating: /home/ubuntu/data/CMtrain/34.8_t2_tse_tra_22.jpg inflating: /home/ubuntu/data/CMtrain/34.9_t2_tse_tra_24.jpg inflating: /home/ubuntu/data/CMtrain/35.1_AX T2_30.jpg inflating: /home/ubuntu/data/CMtrain/35.10_AX MPR_82.jpg inflating: /home/ubuntu/data/CMtrain/35.11_AX MPR_85.jpg inflating: /home/ubuntu/data/CMtrain/35.12_AX MPR_88.jpg inflating: /home/ubuntu/data/CMtrain/35.2_AX T2_33.jpg inflating: /home/ubuntu/data/CMtrain/35.3_AX T2_35.jpg inflating: /home/ubuntu/data/CMtrain/35.4_AX T2_37.jpg inflating: /home/ubuntu/data/CMtrain/35.5_AX T2 FLAIR_19.jpg inflating: /home/ubuntu/data/CMtrain/35.6_AX T2 FLAIR_21.jpg inflating: /home/ubuntu/data/CMtrain/35.7_AX T2 FLAIR_23.jpg inflating: /home/ubuntu/data/CMtrain/35.8_AX MPR_77.jpg inflating: /home/ubuntu/data/CMtrain/35.9_AX MPR_79.jpg inflating: /home/ubuntu/data/CMtrain/36.1_AX TSE T2_42.jpg inflating: /home/ubuntu/data/CMtrain/36.10_AX T2 FLAIR_32.jpg inflating: /home/ubuntu/data/CMtrain/36.11_AX T2 FLAIR_34.jpg inflating: /home/ubuntu/data/CMtrain/36.2_AX TSE T2_44.jpg inflating: /home/ubuntu/data/CMtrain/36.3_AX TSE T2_46.jpg inflating: /home/ubuntu/data/CMtrain/36.4_AX TSE T2_48.jpg inflating: /home/ubuntu/data/CMtrain/36.5_AX TSE T2_50.jpg inflating: /home/ubuntu/data/CMtrain/36.6_AX TSE T2_52.jpg inflating: /home/ubuntu/data/CMtrain/36.7_AX TSE T2_54.jpg inflating: /home/ubuntu/data/CMtrain/36.8_AX T2 FLAIR_28.jpg inflating: /home/ubuntu/data/CMtrain/36.9_AX T2 FLAIR_30.jpg inflating: /home/ubuntu/data/CMtrain/37.1_AX T2 SPACE RECON_88.jpg inflating: /home/ubuntu/data/CMtrain/37.10_COR T2_45.jpg inflating: /home/ubuntu/data/CMtrain/37.11_DTI 35 DIR B1000(EXP MAPS)_TRACEW_51.jpg inflating: /home/ubuntu/data/CMtrain/37.12_WIPmocoMEMPRAGE FOV 192 RMS_47.jpg inflating: /home/ubuntu/data/CMtrain/37.13_WIPmocoMEMPRAGE FOV 192 RMS_87.jpg inflating: /home/ubuntu/data/CMtrain/37.2_AX T2_28.jpg inflating: /home/ubuntu/data/CMtrain/37.3_AX T2_44.jpg inflating: /home/ubuntu/data/CMtrain/37.4_AX T2_46.jpg inflating: /home/ubuntu/data/CMtrain/37.5_AX T2_47.jpg inflating: /home/ubuntu/data/CMtrain/37.6_COR T2 SPACE RECON_57.jpg inflating: /home/ubuntu/data/CMtrain/37.7_COR T2_14.jpg inflating: /home/ubuntu/data/CMtrain/37.8_COR T2_18.jpg inflating: /home/ubuntu/data/CMtrain/37.9_COR T2_30.jpg inflating: /home/ubuntu/data/CMtrain/38.1_AX TSE T2 (2_0) STEALTH PLANNING_43_42.jpg inflating: /home/ubuntu/data/CMtrain/38.10_COR FSE T2 (ANGLED)_40.jpg inflating: /home/ubuntu/data/CMtrain/38.11_COR FSE T2 (ANGLED)_43.jpg inflating: /home/ubuntu/data/CMtrain/38.12_COR FSE T2 (ANGLED)_46.jpg inflating: /home/ubuntu/data/CMtrain/38.2_AX TSE T2 (2_0) STEALTH PLANNING_45_44.jpg inflating: /home/ubuntu/data/CMtrain/38.3_AX TSE T2 (2_0) STEALTH PLANNING_47_46.jpg inflating: /home/ubuntu/data/CMtrain/38.4_AX TSE T2 (2_0) STEALTH PLANNING_49_48.jpg inflating: /home/ubuntu/data/CMtrain/38.5_AX TSE T2 (2_0) STEALTH PLANNING_51_50.jpg inflating: /home/ubuntu/data/CMtrain/38.6_AX TSE T2 (2_0) STEALTH PLANNING_53_52.jpg inflating: /home/ubuntu/data/CMtrain/38.7_AX TSE T2 (2_0) STEALTH PLANNING_55_54.jpg inflating: /home/ubuntu/data/CMtrain/38.8_AX TSE T2 (2_0) STEALTH PLANNING_57_56.jpg inflating: /home/ubuntu/data/CMtrain/38.9_COR FSE T2 (ANGLED)_37.jpg inflating: /home/ubuntu/data/CMtrain/39.1_AX TSE T2_30.jpg inflating: /home/ubuntu/data/CMtrain/39.10_AX T2 FLAIR_25.jpg inflating: /home/ubuntu/data/CMtrain/39.11_AX T2 FLAIR_27.jpg inflating: /home/ubuntu/data/CMtrain/39.12_AX T2 FLAIR_30.jpg inflating: /home/ubuntu/data/CMtrain/39.13_COR FSE T2 (ANGLED)_28.jpg inflating: /home/ubuntu/data/CMtrain/39.14_COR FSE T2 (ANGLED)_30.jpg inflating: /home/ubuntu/data/CMtrain/39.15_COR FSE T2 (ANGLED)_32.jpg inflating: /home/ubuntu/data/CMtrain/39.16_COR FSE T2 (ANGLED)_34.jpg inflating: /home/ubuntu/data/CMtrain/39.17_COR FSE T2 (ANGLED)_36.jpg inflating: /home/ubuntu/data/CMtrain/39.18_COR FSE T2 (ANGLED)_38.jpg inflating: /home/ubuntu/data/CMtrain/39.19_COR FSE T2 (ANGLED)_40.jpg inflating: /home/ubuntu/data/CMtrain/39.2_AX TSE T2_32.jpg inflating: /home/ubuntu/data/CMtrain/39.20_AX T1 RECON_82.jpg inflating: /home/ubuntu/data/CMtrain/39.21_AX T1 RECON_84.jpg inflating: /home/ubuntu/data/CMtrain/39.22_AX T1 RECON_86.jpg inflating: /home/ubuntu/data/CMtrain/39.23_AX T1 RECON_88.jpg inflating: /home/ubuntu/data/CMtrain/39.24_AX T1 RECON_90.jpg inflating: /home/ubuntu/data/CMtrain/39.25_AX T1 RECON_92.jpg inflating: /home/ubuntu/data/CMtrain/39.26_AX T1 RECON_94.jpg inflating: /home/ubuntu/data/CMtrain/39.27_AX T1 RECON_96.jpg inflating: /home/ubuntu/data/CMtrain/39.3_AX TSE T2_34.jpg inflating: /home/ubuntu/data/CMtrain/39.4_AX TSE T2_36.jpg inflating: /home/ubuntu/data/CMtrain/39.5_AX TSE T2_38.jpg inflating: /home/ubuntu/data/CMtrain/39.6_AX TSE T2_40.jpg inflating: /home/ubuntu/data/CMtrain/39.7_AX TSE T2_42.jpg inflating: /home/ubuntu/data/CMtrain/39.8_AX TSE T2_44.jpg inflating: /home/ubuntu/data/CMtrain/39.9_AX TSE T2_46.jpg inflating: /home/ubuntu/data/CMtrain/40.1_REPEAT AX T2 BLADE-BR_20.jpg inflating: /home/ubuntu/data/CMtrain/40.2_REPEAT AX T2 BLADE-BR_22.jpg inflating: /home/ubuntu/data/CMtrain/40.3_REPEAT AX T2 BLADE-BR_24.jpg inflating: /home/ubuntu/data/CMtrain/40.4_REPEAT AX T2 BLADE-BR_26.jpg inflating: /home/ubuntu/data/CMtrain/40.5_REPEAT AX T2 BLADE-BR_28.jpg inflating: /home/ubuntu/data/CMtrain/40.6_COR T2_36.jpg inflating: /home/ubuntu/data/CMtrain/40.7_COR T2_37.jpg inflating: /home/ubuntu/data/CMtrain/40.8_COR T2_38.jpg inflating: /home/ubuntu/data/CMtrain/41.1_AX TSE T2_36.jpg inflating: /home/ubuntu/data/CMtrain/41.10_COR FSE T2 (ANGLED) REPEAT_36.jpg inflating: /home/ubuntu/data/CMtrain/41.11_COR FSE T2 (ANGLED) REPEAT_38.jpg inflating: /home/ubuntu/data/CMtrain/41.12_COR FSE T2 (ANGLED) REPEAT_40.jpg inflating: /home/ubuntu/data/CMtrain/41.13_COR FSE T2 (ANGLED) REPEAT_42.jpg inflating: /home/ubuntu/data/CMtrain/41.14_COR FSE T2 (ANGLED) REPEAT_44.jpg inflating: /home/ubuntu/data/CMtrain/41.15_COR FSE T2 (ANGLED) REPEAT_46.jpg inflating: /home/ubuntu/data/CMtrain/41.16_COR FSE T2 (ANGLED) REPEAT_48.jpg inflating: /home/ubuntu/data/CMtrain/41.2_AX TSE T2_38.jpg inflating: /home/ubuntu/data/CMtrain/41.3_AX TSE T2_40.jpg inflating: /home/ubuntu/data/CMtrain/41.4_AX TSE T2_42.jpg inflating: /home/ubuntu/data/CMtrain/41.5_AX TSE T2_44.jpg inflating: /home/ubuntu/data/CMtrain/41.6_AX TSE T2_46.jpg inflating: /home/ubuntu/data/CMtrain/41.7_AX T2 FLAIR_23.jpg inflating: /home/ubuntu/data/CMtrain/41.8_AX T2 FLAIR_25.jpg inflating: /home/ubuntu/data/CMtrain/41.9_AX T2 FLAIR_27.jpg inflating: /home/ubuntu/data/CMtrain/42.1_AX TSE T2_39.jpg inflating: /home/ubuntu/data/CMtrain/42.10_AX T1 RECON_144.jpg inflating: /home/ubuntu/data/CMtrain/42.2_AX TSE T2_41.jpg inflating: /home/ubuntu/data/CMtrain/42.3_AX TSE T2_43.jpg inflating: /home/ubuntu/data/CMtrain/42.4_COR FSE T2_37.jpg inflating: /home/ubuntu/data/CMtrain/42.5_COR FSE T2_39.jpg inflating: /home/ubuntu/data/CMtrain/42.6_AX T1 RECON_133.jpg inflating: /home/ubuntu/data/CMtrain/42.7_AX T1 RECON_136.jpg inflating: /home/ubuntu/data/CMtrain/42.8_AX T1 RECON_139.jpg inflating: /home/ubuntu/data/CMtrain/42.9_AX T1 RECON_142.jpg inflating: /home/ubuntu/data/CMtrain/43.1_AX T2_39.jpg inflating: /home/ubuntu/data/CMtrain/43.10_COR T2_52.jpg inflating: /home/ubuntu/data/CMtrain/43.2_AX T2_41.jpg inflating: /home/ubuntu/data/CMtrain/43.3_AX T2_43.jpg inflating: /home/ubuntu/data/CMtrain/43.4_AX T2_45.jpg inflating: /home/ubuntu/data/CMtrain/43.5_AX T2 FLAIR_28.jpg inflating: /home/ubuntu/data/CMtrain/43.6_AX T2 FLAIR_30.jpg inflating: /home/ubuntu/data/CMtrain/43.7_AX T2 FLAIR_32.jpg inflating: /home/ubuntu/data/CMtrain/43.8_COR T2_48.jpg inflating: /home/ubuntu/data/CMtrain/43.9_COR T2_50.jpg inflating: /home/ubuntu/data/CMtrain/44.1_1.2.840.113619.2.176.2025.1773586.10296.1135114914.893_13.jpg inflating: /home/ubuntu/data/CMtrain/44.10_1.2.840.113619.2.176.2025.1773586.10296.1135114915.84_22.jpg inflating: /home/ubuntu/data/CMtrain/44.11_1.2.840.113619.2.176.2025.1773586.10296.1135114915.85_24.jpg inflating: /home/ubuntu/data/CMtrain/44.12_1.2.840.113619.2.176.2025.1773586.10296.1135114915.86_26.jpg inflating: /home/ubuntu/data/CMtrain/44.2_1.2.840.113619.2.176.2025.1773586.10296.1135114914.894_14.jpg inflating: /home/ubuntu/data/CMtrain/44.3_1.2.840.113619.2.176.2025.1773586.10296.1135114914.895_15.jpg inflating: /home/ubuntu/data/CMtrain/44.4_1.2.840.113619.2.176.2025.1773586.10296.1135114914.896_16.jpg inflating: /home/ubuntu/data/CMtrain/44.5_1.2.840.113619.2.176.2025.1773586.10296.1135114914.976_13.jpg inflating: /home/ubuntu/data/CMtrain/44.6_1.2.840.113619.2.176.2025.1773586.10296.1135114914.977_15.jpg inflating: /home/ubuntu/data/CMtrain/44.7_1.2.840.113619.2.176.2025.1773586.10296.1135114914.978_17.jpg inflating: /home/ubuntu/data/CMtrain/44.8_1.2.840.113619.2.176.2025.1773586.10296.1135114914.988_14.jpg inflating: /home/ubuntu/data/CMtrain/44.9_1.2.840.113619.2.176.2025.1773586.10296.1135114914.990_18.jpg inflating: /home/ubuntu/data/CMtrain/45.1_T2 TSE Axial_27.jpg inflating: /home/ubuntu/data/CMtrain/45.10_T2 TSE COR_36.jpg inflating: /home/ubuntu/data/CMtrain/45.11_T2 TSE COR_38.jpg inflating: /home/ubuntu/data/CMtrain/45.12_T2 TSE COR_40.jpg inflating: /home/ubuntu/data/CMtrain/45.13_T2 TSE COR_42.jpg inflating: /home/ubuntu/data/CMtrain/45.14_T2 TSE COR_44.jpg inflating: /home/ubuntu/data/CMtrain/45.15_T2 TSE COR_46.jpg inflating: /home/ubuntu/data/CMtrain/45.16_AX FLAIR SPACE RECON_60.jpg inflating: /home/ubuntu/data/CMtrain/45.17_AX FLAIR SPACE RECON_62.jpg inflating: /home/ubuntu/data/CMtrain/45.18_AX FLAIR SPACE RECON_64.jpg inflating: /home/ubuntu/data/CMtrain/45.19_AX FLAIR SPACE RECON_66.jpg inflating: /home/ubuntu/data/CMtrain/45.2_T2 TSE Axial_29.jpg inflating: /home/ubuntu/data/CMtrain/45.20_AX FLAIR SPACE RECON_68.jpg inflating: /home/ubuntu/data/CMtrain/45.21_AX FLAIR SPACE RECON_70.jpg inflating: /home/ubuntu/data/CMtrain/45.22_AX FLAIR SPACE RECON_102.jpg inflating: /home/ubuntu/data/CMtrain/45.23_AX FLAIR SPACE RECON_104.jpg inflating: /home/ubuntu/data/CMtrain/45.24_AX FLAIR SPACE RECON_106.jpg inflating: /home/ubuntu/data/CMtrain/45.25_AX FLAIR SPACE RECON_108.jpg inflating: /home/ubuntu/data/CMtrain/45.26_AX FLAIR SPACE RECON_110.jpg inflating: /home/ubuntu/data/CMtrain/45.3_T2 TSE Axial_31.jpg inflating: /home/ubuntu/data/CMtrain/45.4_T2 TSE Axial_33.jpg inflating: /home/ubuntu/data/CMtrain/45.5_T2 TSE Axial_35.jpg inflating: /home/ubuntu/data/CMtrain/45.6_AXT2FLAIR_12.jpg inflating: /home/ubuntu/data/CMtrain/45.7_AXT2FLAIR_14.jpg inflating: /home/ubuntu/data/CMtrain/45.8_AXT2FLAIR_16.jpg inflating: /home/ubuntu/data/CMtrain/45.9_AXT2FLAIR_17.jpg inflating: /home/ubuntu/data/CMtrain/46.1_T2W_GRASE CLEAR_5.jpg inflating: /home/ubuntu/data/CMtrain/46.10_T2W_FLAIR AXIAL HR____3_2.jpg inflating: /home/ubuntu/data/CMtrain/46.11_T2W_FLAIR AXIAL HR____4_3.jpg inflating: /home/ubuntu/data/CMtrain/46.12_T2W_FLAIR AXIAL HR____5_4.jpg inflating: /home/ubuntu/data/CMtrain/46.13_T2W_FLAIR AXIAL HR____6_5.jpg inflating: /home/ubuntu/data/CMtrain/46.14_T2W_FLAIR AXIAL HR____14_13.jpg inflating: /home/ubuntu/data/CMtrain/46.15_T2W_FLAIR AXIAL HR____15_14.jpg inflating: /home/ubuntu/data/CMtrain/46.16_T2W_FLAIR AXIAL HR____16_15.jpg inflating: /home/ubuntu/data/CMtrain/46.17_T2W_DRIVE_4.jpg inflating: /home/ubuntu/data/CMtrain/46.18_T2W_DRIVE_6.jpg inflating: /home/ubuntu/data/CMtrain/46.19_T2W_DRIVE_8.jpg inflating: /home/ubuntu/data/CMtrain/46.2_T2W_GRASE CLEAR_6.jpg inflating: /home/ubuntu/data/CMtrain/46.20_T2W_DRIVE_10.jpg inflating: /home/ubuntu/data/CMtrain/46.21_T2W_DRIVE_12.jpg inflating: /home/ubuntu/data/CMtrain/46.22_T2W_DRIVE_14.jpg inflating: /home/ubuntu/data/CMtrain/46.23_T2W_DRIVE_16.jpg inflating: /home/ubuntu/data/CMtrain/46.3_T2W_GRASE CLEAR_7.jpg inflating: /home/ubuntu/data/CMtrain/46.4_T2W_GRASE CLEAR_11.jpg inflating: /home/ubuntu/data/CMtrain/46.5_T2W_GRASE CLEAR_12.jpg inflating: /home/ubuntu/data/CMtrain/46.6_T2W_GRASE CLEAR_13.jpg inflating: /home/ubuntu/data/CMtrain/46.7_T2W_GRASE CLEAR_14.jpg inflating: /home/ubuntu/data/CMtrain/46.8_T2W_GRASE CLEAR_15.jpg inflating: /home/ubuntu/data/CMtrain/46.9_T2W_GRASE CLEAR_16.jpg inflating: /home/ubuntu/data/CMtrain/47.1_AX T2 FS_4.jpg inflating: /home/ubuntu/data/CMtrain/47.10_COR OBL T2 FS 320x320_3.jpg inflating: /home/ubuntu/data/CMtrain/47.11_COR OBL T2 FS 320x320_5.jpg inflating: /home/ubuntu/data/CMtrain/47.12_COR OBL T2 FS 320x320_7.jpg inflating: /home/ubuntu/data/CMtrain/47.13_COR OBL T2 FS 320x320_9.jpg inflating: /home/ubuntu/data/CMtrain/47.14_COR OBL T2 FS 320x320_11.jpg inflating: /home/ubuntu/data/CMtrain/47.15_COR OBL T2 FS 320x320_13.jpg inflating: /home/ubuntu/data/CMtrain/47.16_COR OBL T2 FS 320x320_15.jpg inflating: /home/ubuntu/data/CMtrain/47.17_COR OBL T2 FS 320x320_17.jpg inflating: /home/ubuntu/data/CMtrain/47.18_COR OBL T2 FS 320x320_19.jpg inflating: /home/ubuntu/data/CMtrain/47.2_AX T2 FS_5.jpg inflating: /home/ubuntu/data/CMtrain/47.3_AX T2 FS_6.jpg inflating: /home/ubuntu/data/CMtrain/47.4_AX T2 FS_7.jpg inflating: /home/ubuntu/data/CMtrain/47.5_AX T2 FS_8.jpg inflating: /home/ubuntu/data/CMtrain/47.6_AX T2 FS_9.jpg inflating: /home/ubuntu/data/CMtrain/47.7_AX T2 FS_10.jpg inflating: /home/ubuntu/data/CMtrain/47.8_AX T2 FS_11.jpg inflating: /home/ubuntu/data/CMtrain/47.9_COR OBL T2 FS 320x320_1.jpg inflating: /home/ubuntu/data/CMtrain/48.1_AX T2 FRFSE_11.jpg inflating: /home/ubuntu/data/CMtrain/48.2_AX T2 FRFSE_12.jpg inflating: /home/ubuntu/data/CMtrain/48.3_AX T2 FRFSE_13.jpg inflating: /home/ubuntu/data/CMtrain/48.4_AX T2 FRFSE_14.jpg inflating: /home/ubuntu/data/CMtrain/48.5_AX T2 FRFSE_15.jpg inflating: /home/ubuntu/data/CMtrain/48.6_AX T2 FRFSE_16.jpg inflating: /home/ubuntu/data/CMtrain/48.7_AX T2 FRFSE_17.jpg inflating: /home/ubuntu/data/CMtrain/48.8_AX T2 FRFSE_18.jpg inflating: /home/ubuntu/data/CMtrain/49.1_AX TSE T2 (TRIO PARAMETERS)_33.jpg inflating: /home/ubuntu/data/CMtrain/49.10_AX TSE T2 (TRIO PARAMETERS)_51.jpg inflating: /home/ubuntu/data/CMtrain/49.11_AX TSE T2 (TRIO PARAMETERS)_53.jpg inflating: /home/ubuntu/data/CMtrain/49.12_AX TSE T2 (TRIO PARAMETERS)_55.jpg inflating: /home/ubuntu/data/CMtrain/49.13_AX TSE T2 (TRIO PARAMETERS)_57.jpg inflating: /home/ubuntu/data/CMtrain/49.14_AX T2 FLAIR_22.jpg inflating: /home/ubuntu/data/CMtrain/49.15_AX T2 FLAIR_24.jpg inflating: /home/ubuntu/data/CMtrain/49.16_AX T2 FLAIR_26.jpg inflating: /home/ubuntu/data/CMtrain/49.17_AX T2 FLAIR_28.jpg inflating: /home/ubuntu/data/CMtrain/49.18_AX T2 FLAIR_30.jpg inflating: /home/ubuntu/data/CMtrain/49.19_AX T2 FLAIR_32.jpg inflating: /home/ubuntu/data/CMtrain/49.2_AX TSE T2 (TRIO PARAMETERS)_35.jpg inflating: /home/ubuntu/data/CMtrain/49.20_AX T2 FLAIR_34.jpg inflating: /home/ubuntu/data/CMtrain/49.21_COR FSE T2_35.jpg inflating: /home/ubuntu/data/CMtrain/49.22_COR FSE T2_37.jpg inflating: /home/ubuntu/data/CMtrain/49.23_COR FSE T2_39.jpg inflating: /home/ubuntu/data/CMtrain/49.24_COR FSE T2_41.jpg inflating: /home/ubuntu/data/CMtrain/49.25_COR FSE T2_43.jpg inflating: /home/ubuntu/data/CMtrain/49.26_COR FSE T2_45.jpg inflating: /home/ubuntu/data/CMtrain/49.27_COR FSE T2_47.jpg inflating: /home/ubuntu/data/CMtrain/49.28_COR FSE T2_49.jpg inflating: /home/ubuntu/data/CMtrain/49.3_AX TSE T2 (TRIO PARAMETERS)_37.jpg inflating: /home/ubuntu/data/CMtrain/49.4_AX TSE T2 (TRIO PARAMETERS)_39.jpg inflating: /home/ubuntu/data/CMtrain/49.5_AX TSE T2 (TRIO PARAMETERS)_41.jpg inflating: /home/ubuntu/data/CMtrain/49.6_AX TSE T2 (TRIO PARAMETERS)_43.jpg inflating: /home/ubuntu/data/CMtrain/49.7_AX TSE T2 (TRIO PARAMETERS)_45.jpg inflating: /home/ubuntu/data/CMtrain/49.8_AX TSE T2 (TRIO PARAMETERS)_47.jpg inflating: /home/ubuntu/data/CMtrain/49.9_AX TSE T2 (TRIO PARAMETERS)_49.jpg inflating: /home/ubuntu/data/CMtrain/50.1_T2 AX_17.jpg inflating: /home/ubuntu/data/CMtrain/50.10_T2 COR THIN SEIZURE_10.jpg inflating: /home/ubuntu/data/CMtrain/50.11_T2 COR THIN SEIZURE_12.jpg inflating: /home/ubuntu/data/CMtrain/50.12_T2 COR THIN SEIZURE_14.jpg inflating: /home/ubuntu/data/CMtrain/50.13_T2 COR THIN SEIZURE_16.jpg inflating: /home/ubuntu/data/CMtrain/50.14_T2 COR THIN SEIZURE_18.jpg inflating: /home/ubuntu/data/CMtrain/50.15_T2 COR THIN SEIZURE_20.jpg inflating: /home/ubuntu/data/CMtrain/50.16_T2 COR THIN SEIZURE_22.jpg inflating: /home/ubuntu/data/CMtrain/50.2_T2 AX_19.jpg inflating: /home/ubuntu/data/CMtrain/50.3_T2 AX_21.jpg inflating: /home/ubuntu/data/CMtrain/50.4_T2 AX_23.jpg inflating: /home/ubuntu/data/CMtrain/50.5_T2 AX_25.jpg inflating: /home/ubuntu/data/CMtrain/50.6_T2 AX_27.jpg inflating: /home/ubuntu/data/CMtrain/50.7_T2 COR THIN SEIZURE_4.jpg inflating: /home/ubuntu/data/CMtrain/50.8_T2 COR THIN SEIZURE_6.jpg inflating: /home/ubuntu/data/CMtrain/50.9_T2 COR THIN SEIZURE_8.jpg inflating: /home/ubuntu/data/CMtrain/51.1_AX TSE T2_26.jpg inflating: /home/ubuntu/data/CMtrain/51.2_AX TSE T2_27.jpg inflating: /home/ubuntu/data/CMtrain/51.3_AX TSE T2_28.jpg inflating: /home/ubuntu/data/CMtrain/51.4_AX TSE T2_31.jpg inflating: /home/ubuntu/data/CMtrain/51.5_AX TSE T2_32.jpg inflating: /home/ubuntu/data/CMtrain/51.6_COR TSE T2_22.jpg inflating: /home/ubuntu/data/CMtrain/51.7_COR TSE T2_23.jpg inflating: /home/ubuntu/data/CMtrain/51.8_COR TSE T2_24.jpg inflating: /home/ubuntu/data/CMtrain/51.9_COR TSE T2_32.jpg Archive: /home/ubuntu/data/CMval.zip inflating: /home/ubuntu/data/CMval/15.1_AX T2-BR_16.jpg inflating: /home/ubuntu/data/CMval/15.10_COR T2-BR_12.jpg inflating: /home/ubuntu/data/CMval/15.11_COR T2-BR_14.jpg inflating: /home/ubuntu/data/CMval/15.12_COR T1 MPRAGE-BR_32.jpg inflating: /home/ubuntu/data/CMval/15.13_COR T1 MPRAGE-BR_34.jpg inflating: /home/ubuntu/data/CMval/15.14_COR T1 MPRAGE-BR_36.jpg inflating: /home/ubuntu/data/CMval/15.15_COR T1 MPRAGE-BR_38.jpg inflating: /home/ubuntu/data/CMval/15.16_COR T1 MPRAGE-BR_40.jpg inflating: /home/ubuntu/data/CMval/15.17_COR T1 MPRAGE-BR_42.jpg inflating: /home/ubuntu/data/CMval/15.18_COR T1 MPRAGE-BR_44.jpg inflating: /home/ubuntu/data/CMval/15.2_AX T2-BR_18.jpg inflating: /home/ubuntu/data/CMval/15.3_AX T2-BR_20.jpg inflating: /home/ubuntu/data/CMval/15.4_AX T2-BR_22.jpg inflating: /home/ubuntu/data/CMval/15.5_AX T2-BR_24.jpg inflating: /home/ubuntu/data/CMval/15.6_AX T2 FLAIR-BR_23.jpg inflating: /home/ubuntu/data/CMval/15.7_AX T2 FLAIR-BR_25.jpg inflating: /home/ubuntu/data/CMval/15.8_COR T2-BR_8.jpg inflating: /home/ubuntu/data/CMval/15.9_COR T2-BR_10.jpg inflating: /home/ubuntu/data/CMval/16.1_AX TSE T2_41.jpg inflating: /home/ubuntu/data/CMval/16.10_AX T2 FLAIR_24.jpg inflating: /home/ubuntu/data/CMval/16.11_AX T2 FLAIR_26.jpg inflating: /home/ubuntu/data/CMval/16.12_AX T2 FLAIR_28.jpg inflating: /home/ubuntu/data/CMval/16.13_AX T2 FLAIR_30.jpg inflating: /home/ubuntu/data/CMval/16.2_AX TSE T2_43.jpg inflating: /home/ubuntu/data/CMval/16.3_AX TSE T2_45.jpg inflating: /home/ubuntu/data/CMval/16.4_AX TSE T2_47.jpg inflating: /home/ubuntu/data/CMval/16.5_AX TSE T2_50.jpg inflating: /home/ubuntu/data/CMval/16.6_AX TSE T2_52.jpg inflating: /home/ubuntu/data/CMval/16.7_AX TSE T2_54.jpg inflating: /home/ubuntu/data/CMval/16.8_AX TSE T2_56.jpg inflating: /home/ubuntu/data/CMval/16.9_AX T2 FLAIR_22.jpg inflating: /home/ubuntu/data/CMval/17.1_T2 TSE Axial_31.jpg inflating: /home/ubuntu/data/CMval/17.10_T2 TSE COR_45.jpg inflating: /home/ubuntu/data/CMval/17.11_T2 TSE COR_47.jpg inflating: /home/ubuntu/data/CMval/17.2_T2 TSE Axial_33.jpg inflating: /home/ubuntu/data/CMval/17.3_T2 TSE Axial_36.jpg inflating: /home/ubuntu/data/CMval/17.4_AXT2FLAIR_16.jpg inflating: /home/ubuntu/data/CMval/17.5_AXT2FLAIR_18.jpg inflating: /home/ubuntu/data/CMval/17.6_AXT2FLAIR_20.jpg inflating: /home/ubuntu/data/CMval/17.7_AXT2FLAIR_22.jpg inflating: /home/ubuntu/data/CMval/17.8_T2 TSE COR_41.jpg inflating: /home/ubuntu/data/CMval/17.9_T2 TSE COR_43.jpg inflating: /home/ubuntu/data/CMval/18.1_AX T1 RECON_93.jpg inflating: /home/ubuntu/data/CMval/18.10_COR T2_37.jpg inflating: /home/ubuntu/data/CMval/18.11_COR T2_43.jpg inflating: /home/ubuntu/data/CMval/18.12_WIPmocoMEMPRAGE FOV 192_ND RMS_125.jpg inflating: /home/ubuntu/data/CMval/18.13_WIPmocoMEMPRAGE FOV 192_ND RMS_132.jpg inflating: /home/ubuntu/data/CMval/18.14_WIPmocoMEMPRAGE FOV 192_ND RMS_138.jpg inflating: /home/ubuntu/data/CMval/18.2_AX T1 RECON_99.jpg inflating: /home/ubuntu/data/CMval/18.3_AX T1 RECON_118.jpg inflating: /home/ubuntu/data/CMval/18.4_AX T1 RECON_121.jpg inflating: /home/ubuntu/data/CMval/18.5_AX T2_24.jpg inflating: /home/ubuntu/data/CMval/18.6_AX T2_30.jpg inflating: /home/ubuntu/data/CMval/18.7_AX T2_31.jpg inflating: /home/ubuntu/data/CMval/18.8_AX T2_36.jpg inflating: /home/ubuntu/data/CMval/18.9_AX T2_37.jpg inflating: /home/ubuntu/data/CMval/19.1_1.2.840.113619.2.1.15194.2774363995.2.13.974038357_13.jpg inflating: /home/ubuntu/data/CMval/19.10_1.2.840.113619.2.1.15194.2797629275.4.17.974038742_17.jpg inflating: /home/ubuntu/data/CMval/19.11_1.2.840.113619.2.1.15194.2797760347.4.19.974038742_19.jpg inflating: /home/ubuntu/data/CMval/19.2_1.2.840.113619.2.1.15194.2774429531.2.14.974038357_14.jpg inflating: /home/ubuntu/data/CMval/19.3_1.2.840.113619.2.1.15194.2774495067.2.15.974038357_15.jpg inflating: /home/ubuntu/data/CMval/19.4_1.2.840.113619.2.1.15194.2772463451.2.16.974038357_16.jpg inflating: /home/ubuntu/data/CMval/19.5_1.2.840.113619.2.1.15194.2772528987.2.17.974038358_17.jpg inflating: /home/ubuntu/data/CMval/19.6_1.2.840.113619.2.1.15194.2772594523.2.18.974038358_18.jpg inflating: /home/ubuntu/data/CMval/19.7_1.2.840.113619.2.1.15194.2772660059.2.19.974038358_19.jpg inflating: /home/ubuntu/data/CMval/19.8_1.2.840.113619.2.1.15194.2799464283.4.13.974038742_13.jpg inflating: /home/ubuntu/data/CMval/19.9_1.2.840.113619.2.1.15194.2799595355.4.15.974038742_15.jpg inflating: /home/ubuntu/data/CMval/20.1_AXIAL TSE T2_31.jpg inflating: /home/ubuntu/data/CMval/20.10_AX MPR RECONS_91.jpg inflating: /home/ubuntu/data/CMval/20.11_AX MPR RECONS_93.jpg inflating: /home/ubuntu/data/CMval/20.12_AX MPR RECONS_95.jpg inflating: /home/ubuntu/data/CMval/20.13_AX MPR RECONS_97.jpg inflating: /home/ubuntu/data/CMval/20.14_AX MPR RECONS_99.jpg inflating: /home/ubuntu/data/CMval/20.2_AXIAL TSE T2_33.jpg inflating: /home/ubuntu/data/CMval/20.3_AXIAL TSE T2_35.jpg inflating: /home/ubuntu/data/CMval/20.4_AXT2FLAIR_20.jpg inflating: /home/ubuntu/data/CMval/20.5_AXT2FLAIR_21.jpg inflating: /home/ubuntu/data/CMval/20.6_AXT2FLAIR_22.jpg inflating: /home/ubuntu/data/CMval/20.7_COR T2 TSE_52.jpg inflating: /home/ubuntu/data/CMval/20.8_COR T2 TSE_55.jpg inflating: /home/ubuntu/data/CMval/20.9_COR T2 TSE_56.jpg inflating: /home/ubuntu/data/CMval/21.1_AXT2FLAIR_25.jpg inflating: /home/ubuntu/data/CMval/21.10_AXIAL MPRAGE RECON_112.jpg inflating: /home/ubuntu/data/CMval/21.11_AXIAL MPRAGE RECON_115.jpg inflating: /home/ubuntu/data/CMval/21.12_AXIAL MPRAGE RECON_117.jpg inflating: /home/ubuntu/data/CMval/21.13_AXIAL MPRAGE RECON_120.jpg inflating: /home/ubuntu/data/CMval/21.14_AXIAL MPRAGE RECON_123.jpg inflating: /home/ubuntu/data/CMval/21.15_AXIAL MPRAGE RECON_126.jpg inflating: /home/ubuntu/data/CMval/21.16_AXIAL MPRAGE RECON_129.jpg inflating: /home/ubuntu/data/CMval/21.2_AXT2FLAIR_27.jpg inflating: /home/ubuntu/data/CMval/21.3_AXT2FLAIR_29.jpg inflating: /home/ubuntu/data/CMval/21.4_T2 TSE Axial_33.jpg inflating: /home/ubuntu/data/CMval/21.5_T2 TSE Axial_36.jpg inflating: /home/ubuntu/data/CMval/21.6_T2 TSE Axial_39.jpg inflating: /home/ubuntu/data/CMval/21.7_T2 TSE Axial_42.jpg inflating: /home/ubuntu/data/CMval/21.8_T2 TSE Axial_46.jpg inflating: /home/ubuntu/data/CMval/21.9_AXIAL MPRAGE RECON_109.jpg inflating: /home/ubuntu/data/CMval/22.1_AX T2-BR_17.jpg inflating: /home/ubuntu/data/CMval/22.10_COR T2-BR_29.jpg inflating: /home/ubuntu/data/CMval/22.11_SAG T1 MPRAGE-BR_27.jpg inflating: /home/ubuntu/data/CMval/22.12_SAG T1 MPRAGE-BR_50.jpg inflating: /home/ubuntu/data/CMval/22.2_AX T2-BR_17.jpg inflating: /home/ubuntu/data/CMval/22.3_AX T2-BR_17.jpg inflating: /home/ubuntu/data/CMval/22.4_AX T2-BR_17.jpg inflating: /home/ubuntu/data/CMval/22.5_AX T2 FLAIR-BR_17.jpg inflating: /home/ubuntu/data/CMval/22.6_AX T2 FLAIR-BR_19.jpg inflating: /home/ubuntu/data/CMval/22.7_AX T2 FLAIR-BR_21.jpg inflating: /home/ubuntu/data/CMval/22.8_AX T2 FLAIR-BR_23.jpg inflating: /home/ubuntu/data/CMval/22.9_COR T2-BR_25.jpg inflating: /home/ubuntu/data/CMval/23.1_sT2W_TSE_15.jpg inflating: /home/ubuntu/data/CMval/23.2_sT2W_TSE_16.jpg inflating: /home/ubuntu/data/CMval/23.3_sT2W_TSE_17.jpg inflating: /home/ubuntu/data/CMval/23.4_sT2W_TSE_18.jpg inflating: /home/ubuntu/data/CMval/23.5_sT2W_FLAIR_13.jpg inflating: /home/ubuntu/data/CMval/23.6_sT2W_FLAIR_14.jpg inflating: /home/ubuntu/data/CMval/23.7_sT2W_FLAIR_15.jpg inflating: /home/ubuntu/data/CMval/23.8_sT2W_FLAIR_16.jpg inflating: /home/ubuntu/data/CMval/24.1_AX T2_35.jpg inflating: /home/ubuntu/data/CMval/24.10_AX T2 FLAIR_27.jpg inflating: /home/ubuntu/data/CMval/24.11_AX T2 FLAIR_29.jpg inflating: /home/ubuntu/data/CMval/24.12_AX T2 FLAIR_31.jpg inflating: /home/ubuntu/data/CMval/24.13_COR T2_34.jpg inflating: /home/ubuntu/data/CMval/24.14_COR T2_37.jpg inflating: /home/ubuntu/data/CMval/24.15_COR T2_40.jpg inflating: /home/ubuntu/data/CMval/24.16_COR T2_43.jpg inflating: /home/ubuntu/data/CMval/24.17_COR T2_46.jpg inflating: /home/ubuntu/data/CMval/24.18_COR T2_49.jpg inflating: /home/ubuntu/data/CMval/24.19_COR T2_52.jpg inflating: /home/ubuntu/data/CMval/24.2_AX T2_38.jpg inflating: /home/ubuntu/data/CMval/24.20_COR T2_55.jpg inflating: /home/ubuntu/data/CMval/24.21_AX SPACE FLAIR RECON_110.jpg inflating: /home/ubuntu/data/CMval/24.22_AX SPACE FLAIR RECON_114.jpg inflating: /home/ubuntu/data/CMval/24.23_AX SPACE FLAIR RECON_118.jpg inflating: /home/ubuntu/data/CMval/24.24_AX SPACE FLAIR RECON_122.jpg inflating: /home/ubuntu/data/CMval/24.25_AX SPACE FLAIR RECON_126.jpg inflating: /home/ubuntu/data/CMval/24.26_AX SPACE FLAIR RECON_130.jpg inflating: /home/ubuntu/data/CMval/24.27_AX SPACE FLAIR RECON_136.jpg inflating: /home/ubuntu/data/CMval/24.28_AX SPACE FLAIR RECON_140.jpg inflating: /home/ubuntu/data/CMval/24.29_AX SPACE FLAIR RECON_142.jpg inflating: /home/ubuntu/data/CMval/24.3_AX T2_41.jpg inflating: /home/ubuntu/data/CMval/24.30_AX SPACE FLAIR RECON_145.jpg inflating: /home/ubuntu/data/CMval/24.4_AX T2_44.jpg inflating: /home/ubuntu/data/CMval/24.5_AX T2_47.jpg inflating: /home/ubuntu/data/CMval/24.6_AX T2_50.jpg inflating: /home/ubuntu/data/CMval/24.7_AX T2 FLAIR_21.jpg inflating: /home/ubuntu/data/CMval/24.8_AX T2 FLAIR_23.jpg inflating: /home/ubuntu/data/CMval/24.9_AX T2 FLAIR_25.jpg
# Path to the folder with the original images
pathtoimagesControltrain = './data/Controltrain/'
pathtoimagesControlval = './data/Controlval/'
pathtoimagesCMtrain = './data/CMtrain/'
pathtoimagesCMval = './data/CMval/'
# Create directories to save the processed images
! mkdir ~/data/processedControltrain
! mkdir ~/data/processedControlval
! mkdir ~/data/processedCMtrain
! mkdir ~/data/processedCMval
# Path to the folder with the processed images
pathtoprocessedimagesControltrain = './data/processedControltrain/'
pathtoprocessedimagesControlval = './data/processedControlval/'
pathtoprocessedimagesCMtrain = './data/processedCMtrain/'
pathtoprocessedimagesCMval = './data/processedCMval/'
# Create directories to save the augmented images for the train datasets
! mkdir ~/data/augmentedControltrain
! mkdir ~/data/augmentedCMtrain
# Create the directory to save the augmented images
pathtoaugmentedimagesControltrain = './data/augmentedControltrain/'
pathtoaugmentedimagesCMtrain = './data/augmentedCMtrain/'
# Define the image size
image_size = (512, 512)
# Read in the training images
Controltrain_dir = pathtoimagesControltrain
Controltrain_files = os.listdir(Controltrain_dir)
# For each image
for f in Controltrain_files:
# Open the image
img = Image.open(Controltrain_dir + f)
# Resize the image so that it has a size 512x512
img = img.resize(image_size)
# Transform into a numpy array with no page number and save it into the preprocessed folder
img_arr = np.array(img)
img_arr[462:512, 0:100, :] = np.mean(img_arr[452:462, 0:100, :])
processed_img = Image.fromarray(img_arr, 'RGB')
processed_img_name = './data/processedControltrain/'+'processed'+str(np.random.randint(low=1, high=1e8))+ \
str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e4, high=1e6))+ \
str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e5, high=1e8))+ \
str(np.random.randint(low=1e2, high=1e7))+str(np.random.randint(low=1e3, high=1e5))+ \
str(np.random.randint(low=1e2, high=1e8))+'.jpg'
processed_img.save(processed_img_name)
# Define the characteristics for data augmentation
datagen = ImageDataGenerator(
rotation_range=25,
width_shift_range=0.15,
height_shift_range=0.15,
shear_range=0.15,
zoom_range=0.25,
horizontal_flip=True,
fill_mode='nearest')
# Path to images
ProcessedControltrain_files = os.listdir(pathtoprocessedimagesControltrain)
# Augment the images
ProcessedControltrain_dir = pathtoprocessedimagesControltrain
for f in ProcessedControltrain_files:
img = load_img(ProcessedControltrain_dir + f)
x = img_to_array(img)
x = x.reshape((1,) + x.shape)
# Save the augmented images into a directory of augmented images
i = 0
for batch in datagen.flow(x, batch_size=1,
save_to_dir=pathtoaugmentedimagesControltrain,
save_prefix='augmented'+str(np.random.randint(low=1, high=1e8))+str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e4, high=1e6))+
str(np.random.randint(low=1e5, high=1e8))+str(np.random.randint(low=1e2, high=1e7))+str(np.random.randint(low=1e3, high=1e5))+str(np.random.randint(low=1e2, high=1e8)),
save_format='jpg'):
i += 1
if i > 5:
break # Break the cycle after having created 6 augmented images per image, otherwise the generator would loop indefinitely
# Define the image size
image_size = (512, 512)
# Read in the validation images
Controlval_dir = pathtoimagesControlval
Controlval_files = os.listdir(Controlval_dir)
# For each image
for f in Controlval_files:
# Open the image
img = Image.open(Controlval_dir + f)
# Resize the image so that it has a size 512x512
img = img.resize(image_size)
# Transform into a numpy array with no page number and save it into the preprocessed folder
img_arr = np.array(img)
img_arr[462:512, 0:100, :] = np.mean(img_arr[452:462, 0:100, :])
processed_img = Image.fromarray(img_arr, 'RGB')
processed_img_name = './data/processedControlval/'+'processed'+str(np.random.randint(low=1, high=1e8))+ \
str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e4, high=1e6))+ \
str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e5, high=1e8))+ \
str(np.random.randint(low=1e2, high=1e7))+str(np.random.randint(low=1e3, high=1e5))+ \
str(np.random.randint(low=1e2, high=1e8))+'.jpg'
processed_img.save(processed_img_name)
# Define the image size
image_size = (512, 512)
# Read in the training images
CMtrain_dir = pathtoimagesCMtrain
CMtrain_files = os.listdir(CMtrain_dir)
# For each image
for f in CMtrain_files:
# Open the image
img = Image.open(CMtrain_dir + f)
# Resize the image so that it has a size 512x512
img = img.resize(image_size)
# Transform into a numpy array with no page number and save it into the preprocessed folder
img_arr = np.array(img)
img_arr[462:512, 0:100, :] = np.mean(img_arr[452:462, 0:100, :])
processed_img = Image.fromarray(img_arr, 'RGB')
processed_img_name = './data/processedCMtrain/'+'processed'+str(np.random.randint(low=1, high=1e8))+ \
str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e4, high=1e6))+ \
str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e5, high=1e8))+ \
str(np.random.randint(low=1e2, high=1e7))+str(np.random.randint(low=1e3, high=1e5))+ \
str(np.random.randint(low=1e2, high=1e8))+'.jpg'
processed_img.save(processed_img_name)
# Define the characteristics for data augmentation
datagen = ImageDataGenerator(
rotation_range=25,
width_shift_range=0.15,
height_shift_range=0.15,
shear_range=0.15,
zoom_range=0.25,
horizontal_flip=True,
fill_mode='nearest')
# Path to images
ProcessedCMtrain_files = os.listdir(pathtoprocessedimagesCMtrain)
# Augment the images
ProcessedCMtrain_dir = pathtoprocessedimagesCMtrain
for f in ProcessedCMtrain_files:
img = load_img(ProcessedCMtrain_dir + f)
x = img_to_array(img)
x = x.reshape((1,) + x.shape)
# Save the augmented images into a directory of augmented images
i = 0
for batch in datagen.flow(x, batch_size=1,
save_to_dir=pathtoaugmentedimagesCMtrain, save_prefix='augmented'+str(np.random.randint(low=1e5, high=1e8))+str(np.random.randint(low=1e3, high=1e5))+str(np.random.randint(low=1e2, high=1e7))+
str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e2, high=1e8))+str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e4, high=1e6))
, save_format='jpg'):
i += 1
if i > 5:
break # Break the cycle after having created 6 augmented images per image, otherwise the generator would loop indefinitely
# Define the image size
image_size = (512, 512)
# Read in the validation images
CMval_dir = pathtoimagesCMval
CMval_files = os.listdir(CMval_dir)
# For each image
for f in CMval_files:
# Open the image
img = Image.open(CMval_dir + f)
# Resize the image so that it has a size 512x512
img = img.resize(image_size)
# Transform into a numpy array with no page number and save it into the preprocessed folder
img_arr = np.array(img)
img_arr[462:512, 0:100, :] = np.mean(img_arr[452:462, 0:100, :])
processed_img = Image.fromarray(img_arr, 'RGB')
processed_img_name = './data/processedCMval/'+'processed'+str(np.random.randint(low=1, high=1e8))+ \
str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e4, high=1e6))+ \
str(np.random.randint(low=1e4, high=1e6))+str(np.random.randint(low=1e5, high=1e8))+ \
str(np.random.randint(low=1e2, high=1e7))+str(np.random.randint(low=1e3, high=1e5))+ \
str(np.random.randint(low=1e2, high=1e8))+'.jpg'
processed_img.save(processed_img_name)
# Create directories for the final images
!mkdir ~/data/FinalControltrain
!mkdir ~/data/FinalControlval
!mkdir ~/data/FinalCMtrain
!mkdir ~/data/FinalCMval
# Copy all processed images and augmented images to the final folders
!cp ./data/processedControltrain/* ./data/FinalControltrain/
!cp ./data/augmentedControltrain/* ./data/FinalControltrain/
!cp ./data/processedControlval/* ./data/FinalControlval/
!cp ./data/processedCMtrain/* ./data/FinalCMtrain/
!cp ./data/augmentedCMtrain/* ./data/FinalCMtrain/
!cp ./data/processedCMval/* ./data/FinalCMval/
## Path to final images
pathtofinalControltrain = './data/FinalControltrain/'
pathtofinalControlval = './data/FinalControlval/'
pathtofinalCMtrain = './data/FinalCMtrain/'
pathtofinalCMval = './data/FinalCMval/'
## CONTROLS
# Define the image size
image_size = (512, 512)
# Read in the training images for controls
Controltrain_images = []
Controltrain_dir = pathtofinalControltrain
Controltrain_files = os.listdir(Controltrain_dir)
# For each image
for f in Controltrain_files:
# Open the image
img = Image.open(Controltrain_dir + f)
# Resize the image so that it has a size 512x512
img = img.resize(image_size)
# Transform into a numpy array
img_arr = np.array(img)
# Add the image to the array of images
Controltrain_images.append(img_arr)
# After having transformed all images, transform the list into a numpy array
Controltrain_X = np.array(Controltrain_images)
# Create an array of labels (0 for controls)
Controltrain_y = np.array([[0]*Controltrain_X.shape[0]]).T
## DIFFUSE CM
# Read in the training images for CM
CMtrain_images = []
CMtrain_dir = pathtofinalCMtrain
CMtrain_files = os.listdir(CMtrain_dir)
# For each image
for f in CMtrain_files:
# Open the image
img = Image.open(CMtrain_dir + f)
# Resize the image so that it has a size 512x512
img = img.resize(image_size)
# Transform into a numpy array
img_arr = np.array(img)
# Add the image to the array of images
CMtrain_images.append(img_arr)
# After having transformed all images, transform the list into a numpy array
CMtrain_X = np.array(CMtrain_images)
# Create an array of labels (1 for CM)
CMtrain_y = np.array([[1]*CMtrain_X.shape[0]]).T
## MERGE CONTROLS AND DIFFUSE CM
# Train merge files
train_X = np.concatenate([Controltrain_X, CMtrain_X])
train_y = np.vstack((Controltrain_y, CMtrain_y))
# GPU expects values to be 32-bit floats
train_X = train_X.astype(np.float32)
# Rescale the pixel values to be between 0 and 1
train_X /= 255.
# Shuffle in unison the train_X and the train_y array (123 is just a random number for reproducibility)
shuffled_train_X, shuffled_train_y = shuffle(train_X, train_y, random_state=123)
# Transform outcome to one-hot encoding
shuffled_train_y = to_categorical(shuffled_train_y)
# Make sure that the dimensions are as expected
shuffled_train_X.shape
(5389, 512, 512, 3)
# Example of an image to make sure they were converted right
plt.imshow(shuffled_train_X[0])
plt.grid(b=None)
plt.xticks([])
plt.yticks([])
plt.show()
# Make sure that the dimensions are as expected
shuffled_train_y.shape
(5389, 2)
# Make sure that the label is correct for the image
shuffled_train_y[0]
array([1., 0.], dtype=float32)
## VALIDATION
# Define the image size
image_size = (512, 512)
# Read in the validation images for controls
Controlval_images = []
Controlval_dir = pathtofinalControlval
Controlval_files = os.listdir(Controlval_dir)
# For each image
for f in Controlval_files:
# Open the image
img = Image.open(Controlval_dir + f)
# Resize the image so that it has a size 512x512
img = img.resize(image_size)
# Transform into a numpy array
img_arr = np.array(img)
# Add the image to the array of images
Controlval_images.append(img_arr)
# After having transformed all images, transform the list into a numpy array
Controlval_X = np.array(Controlval_images)
# Create an array of labels (0 for controls)
Controlval_y = np.array([[0]*Controlval_X.shape[0]]).T
## DIFFUSE CM
# Read in the validation images for CM
CMval_images = []
CMval_dir = pathtofinalCMval
CMval_files = os.listdir(CMval_dir)
# For each image
for f in CMval_files:
# Open the image
img = Image.open(CMval_dir + f)
# Resize the image so that it has a size 512x512
img = img.resize(image_size)
# Transform into a numpy array
img_arr = np.array(img)
# Add the image to the array of images
CMval_images.append(img_arr)
# After having transformed all images, transform the list into a numpy array
CMval_X = np.array(CMval_images)
# Create an array of labels (1 for CM)
CMval_y = np.array([[1]*CMval_X.shape[0]]).T
## MERGE CONTROLS AND DIFFUSE CM
# Val merge files
val_X = np.concatenate([Controlval_X, CMval_X])
val_y = np.vstack((Controlval_y, CMval_y))
# GPU expects pixel values to be 32-bit floats
val_X = val_X.astype(np.float32)
# Rescale the pixel values to be between 0 and 1
val_X /= 255.
# Shuffle in unison the val_X and the val_y array (123 is just a random number for reproducibility)
shuffled_val_X, shuffled_val_y = shuffle(val_X, val_y, random_state=123)
# Transform outcome to one-hot encoding
shuffled_val_y = to_categorical(shuffled_val_y)
# Make sure that the dimensions are as expected
shuffled_val_X.shape
(306, 512, 512, 3)
# Example of an image to make sure they were converted right
plt.imshow(shuffled_val_X[0])
plt.grid(b=None)
plt.xticks([])
plt.yticks([])
plt.show()
# Make sure that the dimensions are as expected
shuffled_val_y.shape
(306, 2)
# Make sure that the label is correct for the image
shuffled_val_y[0]
array([1., 0.], dtype=float32)
## Define the initial input
initial_input = Input(shape = train_X.shape[1:])
## Add convolutional and max pooling layers
x = Conv2D(filters = 64, kernel_size = (3,3), padding = 'same')(initial_input)
x = MaxPooling2D(pool_size = (2, 2), padding = 'same')(x)
x = BatchNormalization()(x)
x = Activation('relu')(x)
x = Conv2D(filters = 64, kernel_size = (3,3), padding = 'same', activation='relu')(x)
x = MaxPooling2D(pool_size = (2, 2), padding = 'same')(x)
x = BatchNormalization()(x)
x = Activation('relu')(x)
## Add inception block
# Convolution 1x1
conv1 = Conv2D(filters=64, kernel_size=(1,1), padding='same', activation='relu')(x)
# Convolution 3x3
conv3 = Conv2D(filters=96, kernel_size=(1,1), padding='same', activation='relu')(x)
conv3 = Conv2D(filters=128, kernel_size=(3,3), padding='same', activation='relu')(conv3)
# Convolution 5x5
conv5 = Conv2D(filters=64, kernel_size=(1,1), padding='same', activation='relu')(x)
conv5 = Conv2D(filters=128, kernel_size=(5,5), padding='same', activation='relu')(conv5)
# Max Pooling 3x3
pool = MaxPooling2D(pool_size=(3,3), strides=(1,1), padding='same')(x)
pool = Conv2D(filters=64, kernel_size=(3,3), padding='same', activation='relu')(pool)
# Concatenate filters
x = concatenate([conv1, conv3, conv5, pool], axis=-1)
## Add convolutional and max pooling layers
x = Conv2D(filters = 128, kernel_size = (3,3), padding = 'same')(initial_input)
x = MaxPooling2D(pool_size = (2, 2), padding = 'same')(x)
x = BatchNormalization()(x)
x = Activation('relu')(x)
x = Conv2D(filters = 256, kernel_size = (3,3), padding = 'same', activation='relu')(x)
x = MaxPooling2D(pool_size = (2, 2), padding = 'same')(x)
x = BatchNormalization()(x)
x = Activation('relu')(x)
x = Conv2D(filters = 256, kernel_size = (3,3), padding = 'same', activation='relu')(x)
x = MaxPooling2D(pool_size = (2, 2), padding = 'same')(x)
## Add inception block
# Convolution 1x1
conv1 = Conv2D(filters=128, kernel_size=(1,1), padding='same', activation='relu')(x)
# Convolution 3x3
conv3 = Conv2D(filters=128, kernel_size=(1,1), padding='same', activation='relu')(x)
conv3 = Conv2D(filters=256, kernel_size=(3,3), padding='same', activation='relu')(conv3)
# Convolution 5x5
conv5 = Conv2D(filters=64, kernel_size=(1,1), padding='same', activation='relu')(x)
conv5 = Conv2D(filters=128, kernel_size=(5,5), padding='same', activation='relu')(conv5)
# Max Pooling 3x3
pool = MaxPooling2D(pool_size=(3,3), strides=(1,1), padding='same')(x)
pool = Conv2D(filters=64, kernel_size=(3,3), padding='same', activation='relu')(pool)
# Concatenate filters
x = concatenate([conv1, conv3, conv5, pool], axis=-1)
## Add inception block
# Convolution 1x1
conv1 = Conv2D(filters=128, kernel_size=(1,1), padding='same', activation='relu')(x)
# Convolution 3x3
conv3 = Conv2D(filters=128, kernel_size=(1,1), padding='same', activation='relu')(x)
conv3 = Conv2D(filters=256, kernel_size=(3,3), padding='same', activation='relu')(conv3)
# Convolution 5x5
conv5 = Conv2D(filters=64, kernel_size=(1,1), padding='same', activation='relu')(x)
conv5 = Conv2D(filters=128, kernel_size=(5,5), padding='same', activation='relu')(conv5)
# Max Pooling 3x3
pool = MaxPooling2D(pool_size=(3,3), strides=(1,1), padding='same')(x)
pool = Conv2D(filters=64, kernel_size=(3,3), padding='same', activation='relu')(pool)
# Concatenate filters
x = concatenate([conv1, conv3, conv5, pool], axis=-1)
## Add inception block
# Convolution 1x1
conv1 = Conv2D(filters=128, kernel_size=(1,1), padding='same', activation='relu')(x)
# Convolution 3x3
conv3 = Conv2D(filters=128, kernel_size=(1,1), padding='same', activation='relu')(x)
conv3 = Conv2D(filters=256, kernel_size=(3,3), padding='same', activation='relu')(conv3)
# Convolution 5x5
conv5 = Conv2D(filters=64, kernel_size=(1,1), padding='same', activation='relu')(x)
conv5 = Conv2D(filters=128, kernel_size=(5,5), padding='same', activation='relu')(conv5)
# Max Pooling 3x3
pool = MaxPooling2D(pool_size=(3,3), strides=(1,1), padding='same')(x)
pool = Conv2D(filters=64, kernel_size=(3,3), padding='same', activation='relu')(pool)
# Concatenate filters
x = concatenate([conv1, conv3, conv5, pool], axis=-1)
## Add inception block
# Convolution 1x1
conv1 = Conv2D(filters=128, kernel_size=(1,1), padding='same', activation='relu')(x)
# Convolution 3x3
conv3 = Conv2D(filters=128, kernel_size=(1,1), padding='same', activation='relu')(x)
conv3 = Conv2D(filters=256, kernel_size=(3,3), padding='same', activation='relu')(conv3)
# Convolution 5x5
conv5 = Conv2D(filters=64, kernel_size=(1,1), padding='same', activation='relu')(x)
conv5 = Conv2D(filters=128, kernel_size=(5,5), padding='same', activation='relu')(conv5)
# Max Pooling 3x3
pool = MaxPooling2D(pool_size=(3,3), strides=(1,1), padding='same')(x)
pool = Conv2D(filters=64, kernel_size=(3,3), padding='same', activation='relu')(pool)
# Concatenate filters
x = concatenate([conv1, conv3, conv5, pool], axis=-1)
## Add global average pooling
x = GlobalAveragePooling2D()(x)
## Add the fully-connected layers
x = Dense(units=516, activation='relu')(x)
x = Dropout(rate=0.5)(x)
x = Dense(units=256, activation='relu')(x)
x = Dropout(rate=0.5)(x)
x = Dense(units=64, activation='relu')(x)
predictions = Dense(units=2, activation='softmax')(x)
# Define the model to be trained
model = Model(inputs=initial_input, outputs=predictions)
# Define the neural network optimizer
opt = Adam(lr = 0.0001)
# Compile the model
model.compile(optimizer = opt, loss = 'categorical_crossentropy', metrics = ['accuracy'])
# Fit the model in the training set
historyCNNMCD = model.fit(shuffled_train_X, shuffled_train_y, validation_data = [shuffled_val_X, shuffled_val_y], epochs = 50, batch_size = 32)
print('\n')
print('\n')
# AUC in train and validation set
auc_trainCNNMCD = roc_auc_score(shuffled_train_y, model.predict(shuffled_train_X))
print('The AUC in the train set is {:.4f}.'.format(auc_trainCNNMCD))
print('\n')
print('\n')
auc_validCNNMCD = roc_auc_score(shuffled_val_y, model.predict(shuffled_val_X))
print('The AUC in the validation set is {:.4f}.'.format(auc_validCNNMCD))
print('\n')
print('\n')
print('\n')
print('\n')
# Figure size and colors
mpl.rcParams['figure.figsize'] = (20,24)
plt.rcParams['axes.facecolor']='white'
plt.rcParams['figure.facecolor']='lightgreen'
plt.rcParams['figure.edgecolor']='black'
# Plot history of loss during training
plt.plot(historyCNNMCD.history['loss'], label='Train', color='red')
plt.plot(historyCNNMCD.history['val_loss'], label='Validation', color='blue')
plt.title('Loss in train and validation set', size=30)
plt.xlabel('Epoch', size=24)
plt.ylabel('Categorical cross-entropy loss', size=24)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.legend(fontsize=20)
plt.ylim(ymin=0, ymax=5)
plt.grid(b=None)
plt.show()
print('\n')
print('\n')
print('\n')
print('\n')
# Plot history of accuracy
plt.plot(historyCNNMCD.history['accuracy'], label='Train', color='red')
plt.plot(historyCNNMCD.history['val_accuracy'], label='Validation', color='blue')
plt.title('Accuracy in train and validation set', size=30)
plt.xlabel('Epoch', size=24)
plt.ylabel('Accuracy', size=24)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.legend(fontsize=20)
plt.ylim(ymin=0, ymax=1.1)
plt.grid(b=None)
plt.show()
Train on 5389 samples, validate on 306 samples Epoch 1/50 5389/5389 [==============================] - 125s 23ms/sample - loss: 0.6900 - accuracy: 0.5311 - val_loss: 0.6928 - val_accuracy: 0.5196 Epoch 2/50 5389/5389 [==============================] - 115s 21ms/sample - loss: 0.6636 - accuracy: 0.6020 - val_loss: 0.6926 - val_accuracy: 0.4935 Epoch 3/50 5389/5389 [==============================] - 113s 21ms/sample - loss: 0.6059 - accuracy: 0.6743 - val_loss: 0.9159 - val_accuracy: 0.4706 Epoch 4/50 5389/5389 [==============================] - 111s 21ms/sample - loss: 0.5155 - accuracy: 0.7469 - val_loss: 0.6447 - val_accuracy: 0.6405 Epoch 5/50 5389/5389 [==============================] - 111s 21ms/sample - loss: 0.4066 - accuracy: 0.8220 - val_loss: 0.4306 - val_accuracy: 0.8039 Epoch 6/50 5389/5389 [==============================] - 110s 20ms/sample - loss: 0.3429 - accuracy: 0.8491 - val_loss: 1.0707 - val_accuracy: 0.6078 Epoch 7/50 5389/5389 [==============================] - 110s 20ms/sample - loss: 0.2704 - accuracy: 0.8890 - val_loss: 0.4177 - val_accuracy: 0.8235 Epoch 8/50 5389/5389 [==============================] - 110s 20ms/sample - loss: 0.2125 - accuracy: 0.9139 - val_loss: 0.4277 - val_accuracy: 0.8333 Epoch 9/50 5389/5389 [==============================] - 108s 20ms/sample - loss: 0.1977 - accuracy: 0.9222 - val_loss: 0.6491 - val_accuracy: 0.8072 Epoch 10/50 5389/5389 [==============================] - 106s 20ms/sample - loss: 0.1328 - accuracy: 0.9510 - val_loss: 1.1272 - val_accuracy: 0.6993 Epoch 11/50 5389/5389 [==============================] - 105s 19ms/sample - loss: 0.1392 - accuracy: 0.9458 - val_loss: 0.5007 - val_accuracy: 0.8529 Epoch 12/50 5389/5389 [==============================] - 107s 20ms/sample - loss: 0.0895 - accuracy: 0.9688 - val_loss: 0.6936 - val_accuracy: 0.8301 Epoch 13/50 5389/5389 [==============================] - 106s 20ms/sample - loss: 0.0725 - accuracy: 0.9772 - val_loss: 1.1591 - val_accuracy: 0.7614 Epoch 14/50 5389/5389 [==============================] - 105s 20ms/sample - loss: 0.0843 - accuracy: 0.9703 - val_loss: 0.7115 - val_accuracy: 0.8497 Epoch 15/50 5389/5389 [==============================] - 104s 19ms/sample - loss: 0.0852 - accuracy: 0.9699 - val_loss: 0.7072 - val_accuracy: 0.8366 Epoch 16/50 5389/5389 [==============================] - 104s 19ms/sample - loss: 0.0481 - accuracy: 0.9826 - val_loss: 0.7677 - val_accuracy: 0.8366 Epoch 17/50 5389/5389 [==============================] - 104s 19ms/sample - loss: 0.0406 - accuracy: 0.9861 - val_loss: 0.7540 - val_accuracy: 0.8693 Epoch 18/50 5389/5389 [==============================] - 105s 19ms/sample - loss: 0.0246 - accuracy: 0.9918 - val_loss: 1.1258 - val_accuracy: 0.8660 Epoch 19/50 5389/5389 [==============================] - 103s 19ms/sample - loss: 0.0343 - accuracy: 0.9870 - val_loss: 0.7664 - val_accuracy: 0.8464 Epoch 20/50 5389/5389 [==============================] - 106s 20ms/sample - loss: 0.0330 - accuracy: 0.9896 - val_loss: 1.4755 - val_accuracy: 0.7386 Epoch 21/50 5389/5389 [==============================] - 107s 20ms/sample - loss: 0.0688 - accuracy: 0.9768 - val_loss: 0.5665 - val_accuracy: 0.7484 Epoch 22/50 5389/5389 [==============================] - 105s 20ms/sample - loss: 0.0268 - accuracy: 0.9896 - val_loss: 1.1653 - val_accuracy: 0.8562 Epoch 23/50 5389/5389 [==============================] - 105s 19ms/sample - loss: 0.0259 - accuracy: 0.9913 - val_loss: 1.6206 - val_accuracy: 0.7810 Epoch 24/50 5389/5389 [==============================] - 104s 19ms/sample - loss: 0.0272 - accuracy: 0.9896 - val_loss: 1.0537 - val_accuracy: 0.8268 Epoch 25/50 5389/5389 [==============================] - 105s 20ms/sample - loss: 0.0196 - accuracy: 0.9929 - val_loss: 1.5238 - val_accuracy: 0.8203 Epoch 26/50 5389/5389 [==============================] - 101s 19ms/sample - loss: 0.0277 - accuracy: 0.9915 - val_loss: 0.7174 - val_accuracy: 0.8693 Epoch 27/50 5389/5389 [==============================] - 106s 20ms/sample - loss: 0.0099 - accuracy: 0.9965 - val_loss: 1.4259 - val_accuracy: 0.8791 Epoch 28/50 5389/5389 [==============================] - 102s 19ms/sample - loss: 0.0227 - accuracy: 0.9926 - val_loss: 0.8686 - val_accuracy: 0.8529 Epoch 29/50 5389/5389 [==============================] - 106s 20ms/sample - loss: 0.0241 - accuracy: 0.9915 - val_loss: 1.0046 - val_accuracy: 0.8856 Epoch 30/50 5389/5389 [==============================] - 104s 19ms/sample - loss: 0.0279 - accuracy: 0.9905 - val_loss: 0.6677 - val_accuracy: 0.8268 Epoch 31/50 5389/5389 [==============================] - 104s 19ms/sample - loss: 0.0232 - accuracy: 0.9916 - val_loss: 1.2305 - val_accuracy: 0.8268 Epoch 32/50 5389/5389 [==============================] - 106s 20ms/sample - loss: 0.0146 - accuracy: 0.9954 - val_loss: 1.1035 - val_accuracy: 0.8824 Epoch 33/50 5389/5389 [==============================] - 104s 19ms/sample - loss: 0.0100 - accuracy: 0.9974 - val_loss: 1.2279 - val_accuracy: 0.8824 Epoch 34/50 5389/5389 [==============================] - 103s 19ms/sample - loss: 0.0066 - accuracy: 0.9985 - val_loss: 0.9337 - val_accuracy: 0.8529 Epoch 35/50 5389/5389 [==============================] - 105s 20ms/sample - loss: 0.0274 - accuracy: 0.9898 - val_loss: 1.0809 - val_accuracy: 0.8529 Epoch 36/50 5389/5389 [==============================] - 106s 20ms/sample - loss: 0.0165 - accuracy: 0.9948 - val_loss: 1.3542 - val_accuracy: 0.8431 Epoch 37/50 5389/5389 [==============================] - 103s 19ms/sample - loss: 7.1734e-04 - accuracy: 0.9998 - val_loss: 1.2258 - val_accuracy: 0.8889 Epoch 38/50 5389/5389 [==============================] - 105s 19ms/sample - loss: 0.0296 - accuracy: 0.9900 - val_loss: 0.7492 - val_accuracy: 0.8333 Epoch 39/50 5389/5389 [==============================] - 103s 19ms/sample - loss: 0.0232 - accuracy: 0.9929 - val_loss: 0.8194 - val_accuracy: 0.8431 Epoch 40/50 5389/5389 [==============================] - 103s 19ms/sample - loss: 0.0134 - accuracy: 0.9967 - val_loss: 1.5354 - val_accuracy: 0.7941 Epoch 41/50 5389/5389 [==============================] - 104s 19ms/sample - loss: 0.0149 - accuracy: 0.9955 - val_loss: 1.3856 - val_accuracy: 0.8431 Epoch 42/50 5389/5389 [==============================] - 103s 19ms/sample - loss: 0.0116 - accuracy: 0.9961 - val_loss: 1.3206 - val_accuracy: 0.8268 Epoch 43/50 5389/5389 [==============================] - 102s 19ms/sample - loss: 0.0168 - accuracy: 0.9939 - val_loss: 2.3000 - val_accuracy: 0.7810 Epoch 44/50 5389/5389 [==============================] - 104s 19ms/sample - loss: 0.0488 - accuracy: 0.9844 - val_loss: 1.1054 - val_accuracy: 0.8268 Epoch 45/50 5389/5389 [==============================] - 101s 19ms/sample - loss: 0.0101 - accuracy: 0.9965 - val_loss: 1.0540 - val_accuracy: 0.8399 Epoch 46/50 5389/5389 [==============================] - 107s 20ms/sample - loss: 0.0225 - accuracy: 0.9913 - val_loss: 1.1714 - val_accuracy: 0.8627 Epoch 47/50 5389/5389 [==============================] - 103s 19ms/sample - loss: 0.0108 - accuracy: 0.9970 - val_loss: 1.3767 - val_accuracy: 0.8725 Epoch 48/50 5389/5389 [==============================] - 106s 20ms/sample - loss: 0.0622 - accuracy: 0.9783 - val_loss: 1.7901 - val_accuracy: 0.8333 Epoch 49/50 5389/5389 [==============================] - 104s 19ms/sample - loss: 0.0223 - accuracy: 0.9933 - val_loss: 0.9422 - val_accuracy: 0.8497 Epoch 50/50 5389/5389 [==============================] - 103s 19ms/sample - loss: 0.0012 - accuracy: 0.9996 - val_loss: 1.4993 - val_accuracy: 0.8366 The AUC in the train set is 1.0000. The AUC in the validation set is 0.9089.
# Generate predictions in the form of probabilities for the validation set
valCNNMCD = model.predict(shuffled_val_X, batch_size = 32)
# Generate the confusion matrix in the validation set
y_true = np.argmax(shuffled_val_y, axis=1)
y_predCNNMCD = np.argmax(valCNNMCD, axis=1)
# Confusion matrix
pd.DataFrame(confusion_matrix(y_true, y_predCNNMCD), index=['True: Normal', 'True: Diffuse CM'], columns=['Prediction: Normal', 'Prediction: Diffuse CM']).T
| True: Normal | True: Diffuse CM | |
|---|---|---|
| Prediction: Normal | 129 | 20 |
| Prediction: Diffuse CM | 30 | 127 |
# Calculate accuracy in the validation set
accuracy_CNNMCD = accuracy_score(y_true=y_true, y_pred=y_predCNNMCD)
print('The accuracy in the validation set is {:.4f}.'.format(accuracy_CNNMCD))
The accuracy in the validation set is 0.8366.
# Calculate AUC in the validation set
auc_CNNMCD = roc_auc_score(shuffled_val_y, model.predict(shuffled_val_X))
print('The AUC in the validation set is {:.4f}.'.format(auc_validCNNMCD))
The AUC in the validation set is 0.9089.
# Classification report
print(classification_report(y_true, y_predCNNMCD, target_names=['Normal MRI', 'Diffuse CM']))
precision recall f1-score support
Normal MRI 0.87 0.81 0.84 159
Diffuse CM 0.81 0.86 0.84 147
accuracy 0.84 306
macro avg 0.84 0.84 0.84 306
weighted avg 0.84 0.84 0.84 306
# Serialize model to JSON
model_json = model.to_json()
with open("CNNMCD.json", "w") as json_file:
json_file.write(model_json)
# Serialize weights to HDF5
model.save_weights("CNNMCD.h5")
# Visualize the structure and layers of the model
model.layers
[<tensorflow.python.keras.engine.input_layer.InputLayer at 0x7f70ec5fce48>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70ec0d2ba8>, <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f70ec0d2dd8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f70ec0ddac8>, <tensorflow.python.keras.layers.core.Activation at 0x7f70ec0ddfd0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70ec0e6c18>, <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f70ec0e6e80>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f70ec093b70>, <tensorflow.python.keras.layers.core.Activation at 0x7f70ec0937f0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70ec093f98>, <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f70ec09eb00>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70ec0484e0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70ec055be0>, <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f70dadd3c88>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70ec048860>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70ec055908>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70ec05a8d0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70ec063f98>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f70dadd3a58>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70dadde898>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70dadecd30>, <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f70dae006d8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70daddedd8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70dade6be0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70dadeccf8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70dadf7cf8>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f70dae081d0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70dad94940>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70dad9ca90>, <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f70dadb4b38>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70dad94550>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70dad9c7f0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70dada4ef0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70dadaee48>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f70dadb4908>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70dadbe748>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70dadc7ef0>, <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f70dad63fd0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70dadbec88>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70dadc7f28>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70dad52c50>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70dad59ba8>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f70dad6beb8>, <tensorflow.python.keras.layers.pooling.GlobalAveragePooling2D at 0x7f70dad6bcf8>, <tensorflow.python.keras.layers.core.Dense at 0x7f70dad75f98>, <tensorflow.python.keras.layers.core.Dropout at 0x7f70dad75198>, <tensorflow.python.keras.layers.core.Dense at 0x7f70dad7fc18>, <tensorflow.python.keras.layers.core.Dropout at 0x7f70dad7f6a0>, <tensorflow.python.keras.layers.core.Dense at 0x7f70dad876a0>, <tensorflow.python.keras.layers.core.Dense at 0x7f70dad19748>]
# Visualize the structure and layers of the model
print(model.summary())
Model: "model"
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
input_1 (InputLayer) [(None, 512, 512, 3) 0
__________________________________________________________________________________________________
conv2d_8 (Conv2D) (None, 512, 512, 128 3584 input_1[0][0]
__________________________________________________________________________________________________
max_pooling2d_3 (MaxPooling2D) (None, 256, 256, 128 0 conv2d_8[0][0]
__________________________________________________________________________________________________
batch_normalization_2 (BatchNor (None, 256, 256, 128 512 max_pooling2d_3[0][0]
__________________________________________________________________________________________________
activation_2 (Activation) (None, 256, 256, 128 0 batch_normalization_2[0][0]
__________________________________________________________________________________________________
conv2d_9 (Conv2D) (None, 256, 256, 256 295168 activation_2[0][0]
__________________________________________________________________________________________________
max_pooling2d_4 (MaxPooling2D) (None, 128, 128, 256 0 conv2d_9[0][0]
__________________________________________________________________________________________________
batch_normalization_3 (BatchNor (None, 128, 128, 256 1024 max_pooling2d_4[0][0]
__________________________________________________________________________________________________
activation_3 (Activation) (None, 128, 128, 256 0 batch_normalization_3[0][0]
__________________________________________________________________________________________________
conv2d_10 (Conv2D) (None, 128, 128, 256 590080 activation_3[0][0]
__________________________________________________________________________________________________
max_pooling2d_5 (MaxPooling2D) (None, 64, 64, 256) 0 conv2d_10[0][0]
__________________________________________________________________________________________________
conv2d_12 (Conv2D) (None, 64, 64, 128) 32896 max_pooling2d_5[0][0]
__________________________________________________________________________________________________
conv2d_14 (Conv2D) (None, 64, 64, 64) 16448 max_pooling2d_5[0][0]
__________________________________________________________________________________________________
max_pooling2d_6 (MaxPooling2D) (None, 64, 64, 256) 0 max_pooling2d_5[0][0]
__________________________________________________________________________________________________
conv2d_11 (Conv2D) (None, 64, 64, 128) 32896 max_pooling2d_5[0][0]
__________________________________________________________________________________________________
conv2d_13 (Conv2D) (None, 64, 64, 256) 295168 conv2d_12[0][0]
__________________________________________________________________________________________________
conv2d_15 (Conv2D) (None, 64, 64, 128) 204928 conv2d_14[0][0]
__________________________________________________________________________________________________
conv2d_16 (Conv2D) (None, 64, 64, 64) 147520 max_pooling2d_6[0][0]
__________________________________________________________________________________________________
concatenate_1 (Concatenate) (None, 64, 64, 576) 0 conv2d_11[0][0]
conv2d_13[0][0]
conv2d_15[0][0]
conv2d_16[0][0]
__________________________________________________________________________________________________
conv2d_18 (Conv2D) (None, 64, 64, 128) 73856 concatenate_1[0][0]
__________________________________________________________________________________________________
conv2d_20 (Conv2D) (None, 64, 64, 64) 36928 concatenate_1[0][0]
__________________________________________________________________________________________________
max_pooling2d_7 (MaxPooling2D) (None, 64, 64, 576) 0 concatenate_1[0][0]
__________________________________________________________________________________________________
conv2d_17 (Conv2D) (None, 64, 64, 128) 73856 concatenate_1[0][0]
__________________________________________________________________________________________________
conv2d_19 (Conv2D) (None, 64, 64, 256) 295168 conv2d_18[0][0]
__________________________________________________________________________________________________
conv2d_21 (Conv2D) (None, 64, 64, 128) 204928 conv2d_20[0][0]
__________________________________________________________________________________________________
conv2d_22 (Conv2D) (None, 64, 64, 64) 331840 max_pooling2d_7[0][0]
__________________________________________________________________________________________________
concatenate_2 (Concatenate) (None, 64, 64, 576) 0 conv2d_17[0][0]
conv2d_19[0][0]
conv2d_21[0][0]
conv2d_22[0][0]
__________________________________________________________________________________________________
conv2d_24 (Conv2D) (None, 64, 64, 128) 73856 concatenate_2[0][0]
__________________________________________________________________________________________________
conv2d_26 (Conv2D) (None, 64, 64, 64) 36928 concatenate_2[0][0]
__________________________________________________________________________________________________
max_pooling2d_8 (MaxPooling2D) (None, 64, 64, 576) 0 concatenate_2[0][0]
__________________________________________________________________________________________________
conv2d_23 (Conv2D) (None, 64, 64, 128) 73856 concatenate_2[0][0]
__________________________________________________________________________________________________
conv2d_25 (Conv2D) (None, 64, 64, 256) 295168 conv2d_24[0][0]
__________________________________________________________________________________________________
conv2d_27 (Conv2D) (None, 64, 64, 128) 204928 conv2d_26[0][0]
__________________________________________________________________________________________________
conv2d_28 (Conv2D) (None, 64, 64, 64) 331840 max_pooling2d_8[0][0]
__________________________________________________________________________________________________
concatenate_3 (Concatenate) (None, 64, 64, 576) 0 conv2d_23[0][0]
conv2d_25[0][0]
conv2d_27[0][0]
conv2d_28[0][0]
__________________________________________________________________________________________________
conv2d_30 (Conv2D) (None, 64, 64, 128) 73856 concatenate_3[0][0]
__________________________________________________________________________________________________
conv2d_32 (Conv2D) (None, 64, 64, 64) 36928 concatenate_3[0][0]
__________________________________________________________________________________________________
max_pooling2d_9 (MaxPooling2D) (None, 64, 64, 576) 0 concatenate_3[0][0]
__________________________________________________________________________________________________
conv2d_29 (Conv2D) (None, 64, 64, 128) 73856 concatenate_3[0][0]
__________________________________________________________________________________________________
conv2d_31 (Conv2D) (None, 64, 64, 256) 295168 conv2d_30[0][0]
__________________________________________________________________________________________________
conv2d_33 (Conv2D) (None, 64, 64, 128) 204928 conv2d_32[0][0]
__________________________________________________________________________________________________
conv2d_34 (Conv2D) (None, 64, 64, 64) 331840 max_pooling2d_9[0][0]
__________________________________________________________________________________________________
concatenate_4 (Concatenate) (None, 64, 64, 576) 0 conv2d_29[0][0]
conv2d_31[0][0]
conv2d_33[0][0]
conv2d_34[0][0]
__________________________________________________________________________________________________
global_average_pooling2d (Globa (None, 576) 0 concatenate_4[0][0]
__________________________________________________________________________________________________
dense (Dense) (None, 516) 297732 global_average_pooling2d[0][0]
__________________________________________________________________________________________________
dropout (Dropout) (None, 516) 0 dense[0][0]
__________________________________________________________________________________________________
dense_1 (Dense) (None, 256) 132352 dropout[0][0]
__________________________________________________________________________________________________
dropout_1 (Dropout) (None, 256) 0 dense_1[0][0]
__________________________________________________________________________________________________
dense_2 (Dense) (None, 64) 16448 dropout_1[0][0]
__________________________________________________________________________________________________
dense_3 (Dense) (None, 2) 130 dense_2[0][0]
==================================================================================================
Total params: 5,116,614
Trainable params: 5,115,846
Non-trainable params: 768
__________________________________________________________________________________________________
None
# Define modifier to replace the sigmoid function of the last layer to a linear function
def model_modifier(m):
m.layers[-1].activation = tf.keras.activations.linear
# Define losses functions. 0 is the index for a normal MRI
loss_normal = lambda output: K.mean(output[:, 0])
# Define losses functions. 1 is the index for a diffuse malformation of cortical development MRI
loss_diffuseMCD = lambda output: K.mean(output[:, 1])
# Create Gradcam object
gradcam = Gradcam(model, model_modifier)
# Create Saliency object
saliency = Saliency(model, model_modifier)
# Iterate through the MRIs in test set
# Set background to white color
plt.rcParams['axes.facecolor']='white'
plt.rcParams['figure.facecolor']='white'
plt.rcParams['figure.edgecolor']='white'
print('\n \n' + '\033[1m' + 'EACH ORIGINAL MRI IS ANALYZED WITH TWO METHODS: CLASS ACTIVATION MAP (UPPER ROW) AND SALIENCY MAP (LOWER ROW)' + '\033[0m' + '\n')
print('\033[1m' + 'EACH MAP IS SUPERIMPOSED ON THE ORIGINAL MRI WITH A TRANSPARENCY THAT IS INVERSELY PROPORTIONAL TO THE ESTIMATED PROBABILITY OF THE MRI BELONGING TO THAT CATEGORY (NORMAL MRI, DIFFUSE CORTICAL MALFORMATION) \n \nHIGHER ESTIMATED PROBABILITIES PRODUCE CLEARLY SEEN MAPS OVERLAID ON THE ORIGINAL MRI AND LOWER ESTIMATED PROBABILITIES PRODUCE VERY TRANSPARENT OR NOT APPRECIABLE MAPS OVERLAID ON THE ORIGINAL MRI' + '\033[0m'+ '\n')
for i in range(20):
# Print spaces to separate from the next image
print('\n \n \n \n \n \n')
# Print real classification of the image
if y_true[i]==0:
real_classification='Normal MRI'
elif y_true[i]==1:
real_classification='Diffuse MCD'
print('\033[1m' + 'REAL CLASSIFICATION OF THE IMAGE: {}'.format(real_classification) + '\033[0m')
# Print model classification and model probability of MCD
if y_predCNNMCD[i]==0:
predicted_classification='Normal MRI'
elif y_predCNNMCD[i]==1:
predicted_classification='Diffuse MCD'
print('\033[1m' + 'MODEL CLASSIFICATION OF THE IMAGE: {}'.format(predicted_classification) + '\033[0m \n')
print('\033[1m' + ' Prob. Normal MRI: {:.4f} '.format(valCNNMCD[i][0]) + 'Prob. Diffuse MCD: {:.4f} '.format(valCNNMCD[i][1]) + '\033[0m')
# Arrays to plot
original_image=shuffled_val_X[i]
list_heatmaps=[
# GradCam heatmap for normal MRI
normalize(gradcam(loss_normal, shuffled_val_X[i])),
# GradCam heatmap for diffuse MCD
normalize(gradcam(loss_diffuseMCD, shuffled_val_X[i])),
# Saliency heatmap for normal MRI
normalize(saliency(loss_normal, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2)),
# Saliency heatmap for diffuse MCD
normalize(saliency(loss_diffuseMCD, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2))
]
# Define figure
f=plt.figure(figsize=(20, 8))
# Define the image grid
grid = ImageGrid(f, 111,
nrows_ncols=(2, 2),
axes_pad=0.05,
share_all=True,
cbar_location="right",
cbar_mode=None,
cbar_size="2%",
cbar_pad=0.15)
# Iterate over the graphs
for j, axis in enumerate(grid):
# Plot original
im=axis.imshow(original_image)
im=axis.imshow(list_heatmaps[j][0], cmap='jet', alpha=0.5*valCNNMCD[i][j%2])
im=axis.set_xticks([])
im=axis.set_yticks([])
# Create scalarmappable for obtaining the colorbar from 0 to 1
sm = plt.cm.ScalarMappable(cmap='jet', norm=plt.Normalize(vmin=0, vmax=1))
plt.colorbar(sm)
plt.show()
EACH ORIGINAL MRI IS ANALYZED WITH TWO METHODS: CLASS ACTIVATION MAP (UPPER ROW) AND SALIENCY MAP (LOWER ROW) EACH MAP IS SUPERIMPOSED ON THE ORIGINAL MRI WITH A TRANSPARENCY THAT IS INVERSELY PROPORTIONAL TO THE ESTIMATED PROBABILITY OF THE MRI BELONGING TO THAT CATEGORY (NORMAL MRI, DIFFUSE CORTICAL MALFORMATION) HIGHER ESTIMATED PROBABILITIES PRODUCE CLEARLY SEEN MAPS OVERLAID ON THE ORIGINAL MRI AND LOWER ESTIMATED PROBABILITIES PRODUCE VERY TRANSPARENT OR NOT APPRECIABLE MAPS OVERLAID ON THE ORIGINAL MRI REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0001 Prob. Diffuse MCD: 0.9999
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9971 Prob. Diffuse MCD: 0.0029
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9999 Prob. Diffuse MCD: 0.0001
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9995 Prob. Diffuse MCD: 0.0005
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.1033 Prob. Diffuse MCD: 0.8967
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0164 Prob. Diffuse MCD: 0.9836
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0003 Prob. Diffuse MCD: 0.9997
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9651 Prob. Diffuse MCD: 0.0349
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0548 Prob. Diffuse MCD: 0.9452
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
# Use InceptionV3 as the base model
base_model = tf.keras.applications.inception_v3.InceptionV3(layers=tf.keras.layers, weights='imagenet', include_top = False, input_shape=train_X.shape[1:])
# Get the output of the base model
x = base_model.output
# Add a 2D global average pooling layer
x = GlobalAveragePooling2D()(x)
## Add the fully-connected layers
x = Dense(units=516, activation='relu')(x)
x = Dropout(rate=0.5)(x)
x = Dense(units=256, activation='relu')(x)
x = Dropout(rate=0.5)(x)
x = Dense(units=64, activation='relu')(x)
# Ad a layer for multiclass classification
predictions = Dense(units = 2, activation = 'softmax')(x)
# Define the model to be trained
model = Model(inputs = base_model.input, outputs = predictions)
# Train only the last 20 layers in the base model
for layer in base_model.layers[:-20]:
layer.trainable = False
for layer in base_model.layers[-20:]:
layer.trainable = True
# Compile the model
opt = Adam(lr = 0.0001)
model.compile(optimizer = opt, loss = 'categorical_crossentropy', metrics = ['accuracy'])
# Fit and test the model in the validation set
historyInceptionV3 = model.fit(shuffled_train_X, shuffled_train_y, validation_data = [shuffled_val_X, shuffled_val_y], epochs = 50, batch_size = 32)
print('\n')
print('\n')
# AUC in train and validation set
auc_trainInceptionV3 = roc_auc_score(shuffled_train_y, model.predict(shuffled_train_X))
print('The AUC in the train set is {:.4f}.'.format(auc_trainInceptionV3))
print('\n')
print('\n')
auc_validInceptionV3 = roc_auc_score(shuffled_val_y, model.predict(shuffled_val_X))
print('The AUC in the validation set is {:.4f}.'.format(auc_validInceptionV3))
print('\n')
print('\n')
print('\n')
print('\n')
# Figure size and colors
mpl.rcParams['figure.figsize'] = (20,24)
plt.rcParams['axes.facecolor']='white'
plt.rcParams['figure.facecolor']='lightgreen'
plt.rcParams['figure.edgecolor']='black'
# Plot history of loss during training
plt.plot(historyInceptionV3.history['loss'], label='Train', color='red')
plt.plot(historyInceptionV3.history['val_loss'], label='Validation', color='blue')
plt.title('Loss in train and validation set', size=30)
plt.xlabel('Epoch', size=24)
plt.ylabel('Categorical cross-entropy loss', size=24)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.legend(fontsize=20)
plt.ylim(ymin=0, ymax=5)
plt.grid(b=None)
plt.show()
print('\n')
print('\n')
print('\n')
print('\n')
# Plot history of accuracy
plt.plot(historyInceptionV3.history['accuracy'], label='Train', color='red')
plt.plot(historyInceptionV3.history['val_accuracy'], label='Validation', color='blue')
plt.title('Accuracy in train and validation set', size=30)
plt.xlabel('Epoch', size=24)
plt.ylabel('Accuracy', size=24)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.legend(fontsize=20)
plt.ylim(ymin=0, ymax=1.1)
plt.grid(b=None)
plt.show()
Train on 5389 samples, validate on 306 samples Epoch 1/50 5389/5389 [==============================] - 37s 7ms/sample - loss: 0.5082 - accuracy: 0.7387 - val_loss: 0.5707 - val_accuracy: 0.7353 Epoch 2/50 5389/5389 [==============================] - 25s 5ms/sample - loss: 0.2287 - accuracy: 0.9106 - val_loss: 0.5357 - val_accuracy: 0.7876 Epoch 3/50 5389/5389 [==============================] - 26s 5ms/sample - loss: 0.1245 - accuracy: 0.9531 - val_loss: 0.6500 - val_accuracy: 0.7908 Epoch 4/50 5389/5389 [==============================] - 27s 5ms/sample - loss: 0.0773 - accuracy: 0.9735 - val_loss: 0.6864 - val_accuracy: 0.7843 Epoch 5/50 5389/5389 [==============================] - 28s 5ms/sample - loss: 0.0475 - accuracy: 0.9837 - val_loss: 0.5993 - val_accuracy: 0.8366 Epoch 6/50 5389/5389 [==============================] - 24s 4ms/sample - loss: 0.0507 - accuracy: 0.9807 - val_loss: 0.8230 - val_accuracy: 0.7843 Epoch 7/50 5389/5389 [==============================] - 27s 5ms/sample - loss: 0.0306 - accuracy: 0.9879 - val_loss: 0.8980 - val_accuracy: 0.8007 Epoch 8/50 5389/5389 [==============================] - 24s 4ms/sample - loss: 0.0220 - accuracy: 0.9926 - val_loss: 0.9700 - val_accuracy: 0.7908 Epoch 9/50 5389/5389 [==============================] - 24s 4ms/sample - loss: 0.0274 - accuracy: 0.9902 - val_loss: 1.4376 - val_accuracy: 0.7680 Epoch 10/50 5389/5389 [==============================] - 26s 5ms/sample - loss: 0.0259 - accuracy: 0.9916 - val_loss: 1.1548 - val_accuracy: 0.7941 Epoch 11/50 5389/5389 [==============================] - 23s 4ms/sample - loss: 0.0066 - accuracy: 0.9981 - val_loss: 1.2653 - val_accuracy: 0.7745 Epoch 12/50 5389/5389 [==============================] - 25s 5ms/sample - loss: 0.0244 - accuracy: 0.9916 - val_loss: 1.0979 - val_accuracy: 0.7941 Epoch 13/50 5389/5389 [==============================] - 25s 5ms/sample - loss: 0.0116 - accuracy: 0.9963 - val_loss: 1.1690 - val_accuracy: 0.7908 Epoch 14/50 5389/5389 [==============================] - 24s 4ms/sample - loss: 0.0117 - accuracy: 0.9954 - val_loss: 1.2707 - val_accuracy: 0.7745 Epoch 15/50 5389/5389 [==============================] - 23s 4ms/sample - loss: 0.0285 - accuracy: 0.9905 - val_loss: 1.2020 - val_accuracy: 0.7876 Epoch 16/50 5389/5389 [==============================] - 23s 4ms/sample - loss: 0.0140 - accuracy: 0.9950 - val_loss: 0.9260 - val_accuracy: 0.8203 Epoch 17/50 5389/5389 [==============================] - 23s 4ms/sample - loss: 0.0094 - accuracy: 0.9968 - val_loss: 0.9324 - val_accuracy: 0.8170 Epoch 18/50 5389/5389 [==============================] - 27s 5ms/sample - loss: 0.0167 - accuracy: 0.9941 - val_loss: 0.8939 - val_accuracy: 0.8366 Epoch 19/50 5389/5389 [==============================] - 25s 5ms/sample - loss: 0.0115 - accuracy: 0.9963 - val_loss: 1.2491 - val_accuracy: 0.7843 Epoch 20/50 5389/5389 [==============================] - 24s 4ms/sample - loss: 0.0091 - accuracy: 0.9965 - val_loss: 1.1942 - val_accuracy: 0.8007 Epoch 21/50 5389/5389 [==============================] - 23s 4ms/sample - loss: 0.0083 - accuracy: 0.9974 - val_loss: 1.1376 - val_accuracy: 0.8105 Epoch 22/50 5389/5389 [==============================] - 25s 5ms/sample - loss: 0.0098 - accuracy: 0.9968 - val_loss: 1.4352 - val_accuracy: 0.7712 Epoch 23/50 5389/5389 [==============================] - 25s 5ms/sample - loss: 0.0081 - accuracy: 0.9983 - val_loss: 1.2392 - val_accuracy: 0.8137 Epoch 24/50 5389/5389 [==============================] - 24s 4ms/sample - loss: 0.0141 - accuracy: 0.9950 - val_loss: 1.2764 - val_accuracy: 0.8007 Epoch 25/50 5389/5389 [==============================] - 23s 4ms/sample - loss: 0.0108 - accuracy: 0.9955 - val_loss: 1.2741 - val_accuracy: 0.8039 Epoch 26/50 5389/5389 [==============================] - 23s 4ms/sample - loss: 0.0126 - accuracy: 0.9952 - val_loss: 1.4622 - val_accuracy: 0.8137 Epoch 27/50 5389/5389 [==============================] - 25s 5ms/sample - loss: 0.0067 - accuracy: 0.9970 - val_loss: 1.3780 - val_accuracy: 0.7843 Epoch 28/50 5389/5389 [==============================] - 26s 5ms/sample - loss: 0.0089 - accuracy: 0.9963 - val_loss: 1.7777 - val_accuracy: 0.7810 Epoch 29/50 5389/5389 [==============================] - 24s 4ms/sample - loss: 0.0122 - accuracy: 0.9954 - val_loss: 1.3010 - val_accuracy: 0.8039 Epoch 30/50 5389/5389 [==============================] - 24s 4ms/sample - loss: 0.0073 - accuracy: 0.9978 - val_loss: 1.1472 - val_accuracy: 0.8170 Epoch 31/50 5389/5389 [==============================] - 23s 4ms/sample - loss: 0.0057 - accuracy: 0.9980 - val_loss: 1.2341 - val_accuracy: 0.8105 Epoch 32/50 5389/5389 [==============================] - 27s 5ms/sample - loss: 0.0103 - accuracy: 0.9965 - val_loss: 1.2029 - val_accuracy: 0.7941 Epoch 33/50 5389/5389 [==============================] - 24s 4ms/sample - loss: 0.0070 - accuracy: 0.9968 - val_loss: 1.2882 - val_accuracy: 0.7974 Epoch 34/50 5389/5389 [==============================] - 23s 4ms/sample - loss: 0.0088 - accuracy: 0.9967 - val_loss: 1.3876 - val_accuracy: 0.8137 Epoch 35/50 5389/5389 [==============================] - 23s 4ms/sample - loss: 0.0050 - accuracy: 0.9976 - val_loss: 1.2398 - val_accuracy: 0.8105 Epoch 36/50 5389/5389 [==============================] - 23s 4ms/sample - loss: 0.0097 - accuracy: 0.9965 - val_loss: 1.3603 - val_accuracy: 0.7974 Epoch 37/50 5389/5389 [==============================] - 23s 4ms/sample - loss: 0.0140 - accuracy: 0.9954 - val_loss: 1.0856 - val_accuracy: 0.8039 Epoch 38/50 5389/5389 [==============================] - 26s 5ms/sample - loss: 0.0114 - accuracy: 0.9965 - val_loss: 1.2334 - val_accuracy: 0.7908 Epoch 39/50 5389/5389 [==============================] - 24s 4ms/sample - loss: 0.0047 - accuracy: 0.9981 - val_loss: 1.3422 - val_accuracy: 0.7941 Epoch 40/50 5389/5389 [==============================] - 24s 4ms/sample - loss: 0.0016 - accuracy: 0.9996 - val_loss: 1.2738 - val_accuracy: 0.8072 Epoch 41/50 5389/5389 [==============================] - 23s 4ms/sample - loss: 0.0015 - accuracy: 0.9996 - val_loss: 1.2923 - val_accuracy: 0.8072 Epoch 42/50 5389/5389 [==============================] - 23s 4ms/sample - loss: 0.0050 - accuracy: 0.9978 - val_loss: 1.3723 - val_accuracy: 0.7974 Epoch 43/50 5389/5389 [==============================] - 23s 4ms/sample - loss: 0.0055 - accuracy: 0.9983 - val_loss: 1.2994 - val_accuracy: 0.8203 Epoch 44/50 5389/5389 [==============================] - 23s 4ms/sample - loss: 0.0089 - accuracy: 0.9970 - val_loss: 1.2857 - val_accuracy: 0.8039 Epoch 45/50 5389/5389 [==============================] - 23s 4ms/sample - loss: 0.0011 - accuracy: 0.9998 - val_loss: 1.7720 - val_accuracy: 0.7908 Epoch 46/50 5389/5389 [==============================] - 23s 4ms/sample - loss: 0.0027 - accuracy: 0.9989 - val_loss: 1.5033 - val_accuracy: 0.7974 Epoch 47/50 5389/5389 [==============================] - 25s 5ms/sample - loss: 0.0052 - accuracy: 0.9981 - val_loss: 1.6611 - val_accuracy: 0.8072 Epoch 48/50 5389/5389 [==============================] - 24s 5ms/sample - loss: 0.0100 - accuracy: 0.9967 - val_loss: 1.8628 - val_accuracy: 0.8072 Epoch 49/50 5389/5389 [==============================] - 24s 4ms/sample - loss: 0.0054 - accuracy: 0.9983 - val_loss: 1.4311 - val_accuracy: 0.7941 Epoch 50/50 5389/5389 [==============================] - 24s 4ms/sample - loss: 0.0052 - accuracy: 0.9983 - val_loss: 1.2340 - val_accuracy: 0.8203 The AUC in the train set is 1.0000. The AUC in the validation set is 0.9090.
# Generate predictions in the form of probabilities for the validation set
valInceptionV3 = model.predict(shuffled_val_X, batch_size = 32)
# Generate the confusion matrix in the validation set
y_true = np.argmax(shuffled_val_y, axis=1)
y_predInceptionV3 = np.argmax(valInceptionV3, axis=1)
# Confusion matrix
pd.DataFrame(confusion_matrix(y_true, y_predInceptionV3), index=['True: Normal', 'True: Diffuse CM'], columns=['Prediction: Normal', 'Prediction: Diffuse CM']).T
| True: Normal | True: Diffuse CM | |
|---|---|---|
| Prediction: Normal | 136 | 32 |
| Prediction: Diffuse CM | 23 | 115 |
# Calculate accuracy in the validation set
accuracy_InceptionV3 = accuracy_score(y_true=y_true, y_pred=y_predInceptionV3)
print('The accuracy in the validation set is {:.4f}.'.format(accuracy_InceptionV3))
The accuracy in the validation set is 0.8203.
# Calculate AUC in the validation set
auc_validInceptionV3 = roc_auc_score(shuffled_val_y, model.predict(shuffled_val_X))
print('The AUC in the validation set is {:.4f}.'.format(auc_validInceptionV3))
The AUC in the validation set is 0.9090.
# Classification report
print(classification_report(y_true, y_predInceptionV3, target_names=['Normal MRI', 'Diffuse CM']))
precision recall f1-score support
Normal MRI 0.81 0.86 0.83 159
Diffuse CM 0.83 0.78 0.81 147
accuracy 0.82 306
macro avg 0.82 0.82 0.82 306
weighted avg 0.82 0.82 0.82 306
# Serialize model to JSON
model_json = model.to_json()
with open("InceptionV3.json", "w") as json_file:
json_file.write(model_json)
# Serialize weights to HDF5
model.save_weights("InceptionV3.h5")
# Visualize the structure and layers of the model
model.layers
[<tensorflow.python.keras.engine.input_layer.InputLayer at 0x7f6e801a1c50>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e8019b2e8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e8019b898>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e8019bba8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e8019b978>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e801937f0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e80193a90>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e801934a8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e801d6978>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e801d6c18>, <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f6e801d6630>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e801d6cf8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e800b3fd0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e800b3d68>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e80093048>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e80099e80>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efefa18d0>, <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f6efefa1160>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f0c10e048>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f0c12ee80>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f0c1378d0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efefaf748>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f0c137160>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efee81cf8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efeee0668>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efee81cc0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efeee0be0>, <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f6e803d6630>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efefa16d8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efee81f60>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efeee0320>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e803d6cf8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efefaf9b0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f0c105c18>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e803d6978>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e80401f98>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efefaffd0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f0c105fd0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e803d6f60>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e8034a6d8>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6e8034a128>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e80112048>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e80137e80>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e801418d0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e80377438>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e80141160>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e80161cf8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e800ec668>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e80161cc0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e800ecbe0>, <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f6f186f6d68>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e8034a438>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e80161f60>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e800ec320>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e1f79bc18>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e803779b0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e8010ac18>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e1f794978>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f183c9940>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e80377fd0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e8010afd0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e1f794f60>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f18197978>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6f183c9e80>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f70ec7eacf8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f185b92e8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f18629f60>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f182641d0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f186294e0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f18696828>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efecdb9e8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f18696668>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efee78080>, <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f6f1838da58>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f183c9be0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f18656fd0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efecdb588>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f1838dd68>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f1827bb70>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f18799c50>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f183a6080>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f18449f28>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f18264fd0>, <tensorflow.python.keras.layers.core.Activation at 0x7f70ec7eab38>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f183a61d0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f18449ef0>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6f18421390>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efece62b0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efeccba90>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efecba080>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efeccb748>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f1823eda0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f1823ed68>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f184212e8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f1821a240>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efece6828>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e80328550>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efece6e10>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e80303668>, <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f6e80303128>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6e80303470>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f183cf278>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e800187f0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e80018d68>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e800184a8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e8002fb00>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e8003a0b8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e8031a940>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e8002f7b8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f18325f60>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efed8de10>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f18325f28>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efed8ddd8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f18338400>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efeda72b0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f1812bdd8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efed2ed30>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f1814a828>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efed2f6d8>, <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f6f182a2128>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e80312f28>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f1814a0b8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efed2f198>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f182a27f0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e8031acf8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f183cf5c0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f182aeef0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f18297ac8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e8031acc0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f183cfb38>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f182a29e8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e804330f0>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6f18297860>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f0c1ad908>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f0c185be0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f0c1a7198>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f0c185898>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efee0ae10>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efee0add8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e8041e320>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efee352b0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f18353550>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f0c15dc50>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f18353ac8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f0c14b5f8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f18353208>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f0c14b0b8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f181ff780>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f0c041dd8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f181ffcf8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f0c061828>, <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f6f0c05e198>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f18297e10>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f181ff438>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f0c0610b8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f0c05e860>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e8040df28>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f0c1ad748>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f0c062f60>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e8046db38>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e8041e8d0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f0c1ad2b0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f0c05ea58>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e80464160>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6e8046d8d0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efef24710>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f18023c88>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f18023c50>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f18023ef0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efefdaeb8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efefdae80>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e80238048>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efefd8358>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e8024a5f8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efefe3cf8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e8024ab70>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efefd16a0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e8024a2b0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efefd1160>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efef08828>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efef75e80>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efef08da0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efef718d0>, <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f6f18174240>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e8046ddd8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efef084e0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efef71160>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f18174908>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e80229f28>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efef24a58>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f18174588>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e8053cbe0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e80238978>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efef36198>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f18174b00>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e8053cba8>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6e8053cc50>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e802c17b8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e80395d30>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e80395cf8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e803959e8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e802fcf60>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e802fcf28>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e80517160>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e802f4400>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efeddf6a0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efee5eda0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efeddfc18>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efee6c550>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efeddf358>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efee6c160>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e8028c8d0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efee61e80>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e8028ce48>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efee46978>, <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f6e1f7262e8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e80533240>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e8028c588>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efee460b8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e1f7269b0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e8051fe48>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e802c1b00>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e1f726630>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f0c09fc88>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e80517a20>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e8038c0b8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e1f726ba8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f0c09fc50>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6f0c09ff60>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f180fd3c8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f0c0e9940>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f0c0e9f28>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f0c0e95f8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efec84b70>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efeca6128>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f0c09ff98>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6efec84828>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f0c094f98>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6efec96da0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f180d3320>, <tensorflow.python.keras.layers.core.Activation at 0x7f6efec96d68>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f180d3fd0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e804ca240>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f180fd710>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e804fdfd0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f180fdc88>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e804fdc88>, <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f6e804ed048>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6e804ed390>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e1f6e15c0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e1f68e8d0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e1f68eeb8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f182ea780>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e1f68e3c8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f18057da0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e1f6bbb38>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f18057d68>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e1f6420f0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f1805d240>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f18087048>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e1f6bb7f0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e1f664a20>, <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f6e1f618358>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6f182dfcc0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f18083fd0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e1f6dbd68>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e1f664d68>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e1f60ff98>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e1f63bcc0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6f182eab38>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f18083c88>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e1f6e17b8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e1f664d30>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e1f60ff60>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e1f5c2ac8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6f182f1160>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6e1f6e1048>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6e1f618400>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e1f5cd0f0>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6e1f5c2710>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e1f57dd68>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e1f527da0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e1f52f6a0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e1f5f6048>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e1f52f0f0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e1f5a4588>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e1f4d0e48>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e1f5a4b00>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e1f4da898>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e1f5a4240>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e1f550470>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e1f4da128>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6638668208>, <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f6638697b00>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6e1f5c2d68>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e1f5507b8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e1f57d9e8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6638668550>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6638697780>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6638644978>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6e1f5f0fd0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e1f550d30>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e1f57dfd0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6638668ac8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6638697cf8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6638644eb8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6e1f5f6908>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6e1f57d6a0>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6638697438>, <tensorflow.python.keras.layers.core.Activation at 0x7f663864a898>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f663864a2e8>, <tensorflow.python.keras.layers.pooling.GlobalAveragePooling2D at 0x7f663861bd68>, <tensorflow.python.keras.layers.core.Dense at 0x7f6e801a1c88>, <tensorflow.python.keras.layers.core.Dropout at 0x7f6638609080>, <tensorflow.python.keras.layers.core.Dense at 0x7f663857e898>, <tensorflow.python.keras.layers.core.Dropout at 0x7f663857e390>, <tensorflow.python.keras.layers.core.Dense at 0x7f66385701d0>, <tensorflow.python.keras.layers.core.Dense at 0x7f6638584be0>]
# Visualize the structure and layers of the model
print(model.summary())
Model: "model_41"
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
input_2 (InputLayer) [(None, 512, 512, 3) 0
__________________________________________________________________________________________________
conv2d_35 (Conv2D) (None, 255, 255, 32) 864 input_2[0][0]
__________________________________________________________________________________________________
batch_normalization_4 (BatchNor (None, 255, 255, 32) 96 conv2d_35[0][0]
__________________________________________________________________________________________________
activation_4 (Activation) (None, 255, 255, 32) 0 batch_normalization_4[0][0]
__________________________________________________________________________________________________
conv2d_36 (Conv2D) (None, 253, 253, 32) 9216 activation_4[0][0]
__________________________________________________________________________________________________
batch_normalization_5 (BatchNor (None, 253, 253, 32) 96 conv2d_36[0][0]
__________________________________________________________________________________________________
activation_5 (Activation) (None, 253, 253, 32) 0 batch_normalization_5[0][0]
__________________________________________________________________________________________________
conv2d_37 (Conv2D) (None, 253, 253, 64) 18432 activation_5[0][0]
__________________________________________________________________________________________________
batch_normalization_6 (BatchNor (None, 253, 253, 64) 192 conv2d_37[0][0]
__________________________________________________________________________________________________
activation_6 (Activation) (None, 253, 253, 64) 0 batch_normalization_6[0][0]
__________________________________________________________________________________________________
max_pooling2d_10 (MaxPooling2D) (None, 126, 126, 64) 0 activation_6[0][0]
__________________________________________________________________________________________________
conv2d_38 (Conv2D) (None, 126, 126, 80) 5120 max_pooling2d_10[0][0]
__________________________________________________________________________________________________
batch_normalization_7 (BatchNor (None, 126, 126, 80) 240 conv2d_38[0][0]
__________________________________________________________________________________________________
activation_7 (Activation) (None, 126, 126, 80) 0 batch_normalization_7[0][0]
__________________________________________________________________________________________________
conv2d_39 (Conv2D) (None, 124, 124, 192 138240 activation_7[0][0]
__________________________________________________________________________________________________
batch_normalization_8 (BatchNor (None, 124, 124, 192 576 conv2d_39[0][0]
__________________________________________________________________________________________________
activation_8 (Activation) (None, 124, 124, 192 0 batch_normalization_8[0][0]
__________________________________________________________________________________________________
max_pooling2d_11 (MaxPooling2D) (None, 61, 61, 192) 0 activation_8[0][0]
__________________________________________________________________________________________________
conv2d_43 (Conv2D) (None, 61, 61, 64) 12288 max_pooling2d_11[0][0]
__________________________________________________________________________________________________
batch_normalization_12 (BatchNo (None, 61, 61, 64) 192 conv2d_43[0][0]
__________________________________________________________________________________________________
activation_12 (Activation) (None, 61, 61, 64) 0 batch_normalization_12[0][0]
__________________________________________________________________________________________________
conv2d_41 (Conv2D) (None, 61, 61, 48) 9216 max_pooling2d_11[0][0]
__________________________________________________________________________________________________
conv2d_44 (Conv2D) (None, 61, 61, 96) 55296 activation_12[0][0]
__________________________________________________________________________________________________
batch_normalization_10 (BatchNo (None, 61, 61, 48) 144 conv2d_41[0][0]
__________________________________________________________________________________________________
batch_normalization_13 (BatchNo (None, 61, 61, 96) 288 conv2d_44[0][0]
__________________________________________________________________________________________________
activation_10 (Activation) (None, 61, 61, 48) 0 batch_normalization_10[0][0]
__________________________________________________________________________________________________
activation_13 (Activation) (None, 61, 61, 96) 0 batch_normalization_13[0][0]
__________________________________________________________________________________________________
average_pooling2d (AveragePooli (None, 61, 61, 192) 0 max_pooling2d_11[0][0]
__________________________________________________________________________________________________
conv2d_40 (Conv2D) (None, 61, 61, 64) 12288 max_pooling2d_11[0][0]
__________________________________________________________________________________________________
conv2d_42 (Conv2D) (None, 61, 61, 64) 76800 activation_10[0][0]
__________________________________________________________________________________________________
conv2d_45 (Conv2D) (None, 61, 61, 96) 82944 activation_13[0][0]
__________________________________________________________________________________________________
conv2d_46 (Conv2D) (None, 61, 61, 32) 6144 average_pooling2d[0][0]
__________________________________________________________________________________________________
batch_normalization_9 (BatchNor (None, 61, 61, 64) 192 conv2d_40[0][0]
__________________________________________________________________________________________________
batch_normalization_11 (BatchNo (None, 61, 61, 64) 192 conv2d_42[0][0]
__________________________________________________________________________________________________
batch_normalization_14 (BatchNo (None, 61, 61, 96) 288 conv2d_45[0][0]
__________________________________________________________________________________________________
batch_normalization_15 (BatchNo (None, 61, 61, 32) 96 conv2d_46[0][0]
__________________________________________________________________________________________________
activation_9 (Activation) (None, 61, 61, 64) 0 batch_normalization_9[0][0]
__________________________________________________________________________________________________
activation_11 (Activation) (None, 61, 61, 64) 0 batch_normalization_11[0][0]
__________________________________________________________________________________________________
activation_14 (Activation) (None, 61, 61, 96) 0 batch_normalization_14[0][0]
__________________________________________________________________________________________________
activation_15 (Activation) (None, 61, 61, 32) 0 batch_normalization_15[0][0]
__________________________________________________________________________________________________
mixed0 (Concatenate) (None, 61, 61, 256) 0 activation_9[0][0]
activation_11[0][0]
activation_14[0][0]
activation_15[0][0]
__________________________________________________________________________________________________
conv2d_50 (Conv2D) (None, 61, 61, 64) 16384 mixed0[0][0]
__________________________________________________________________________________________________
batch_normalization_19 (BatchNo (None, 61, 61, 64) 192 conv2d_50[0][0]
__________________________________________________________________________________________________
activation_19 (Activation) (None, 61, 61, 64) 0 batch_normalization_19[0][0]
__________________________________________________________________________________________________
conv2d_48 (Conv2D) (None, 61, 61, 48) 12288 mixed0[0][0]
__________________________________________________________________________________________________
conv2d_51 (Conv2D) (None, 61, 61, 96) 55296 activation_19[0][0]
__________________________________________________________________________________________________
batch_normalization_17 (BatchNo (None, 61, 61, 48) 144 conv2d_48[0][0]
__________________________________________________________________________________________________
batch_normalization_20 (BatchNo (None, 61, 61, 96) 288 conv2d_51[0][0]
__________________________________________________________________________________________________
activation_17 (Activation) (None, 61, 61, 48) 0 batch_normalization_17[0][0]
__________________________________________________________________________________________________
activation_20 (Activation) (None, 61, 61, 96) 0 batch_normalization_20[0][0]
__________________________________________________________________________________________________
average_pooling2d_1 (AveragePoo (None, 61, 61, 256) 0 mixed0[0][0]
__________________________________________________________________________________________________
conv2d_47 (Conv2D) (None, 61, 61, 64) 16384 mixed0[0][0]
__________________________________________________________________________________________________
conv2d_49 (Conv2D) (None, 61, 61, 64) 76800 activation_17[0][0]
__________________________________________________________________________________________________
conv2d_52 (Conv2D) (None, 61, 61, 96) 82944 activation_20[0][0]
__________________________________________________________________________________________________
conv2d_53 (Conv2D) (None, 61, 61, 64) 16384 average_pooling2d_1[0][0]
__________________________________________________________________________________________________
batch_normalization_16 (BatchNo (None, 61, 61, 64) 192 conv2d_47[0][0]
__________________________________________________________________________________________________
batch_normalization_18 (BatchNo (None, 61, 61, 64) 192 conv2d_49[0][0]
__________________________________________________________________________________________________
batch_normalization_21 (BatchNo (None, 61, 61, 96) 288 conv2d_52[0][0]
__________________________________________________________________________________________________
batch_normalization_22 (BatchNo (None, 61, 61, 64) 192 conv2d_53[0][0]
__________________________________________________________________________________________________
activation_16 (Activation) (None, 61, 61, 64) 0 batch_normalization_16[0][0]
__________________________________________________________________________________________________
activation_18 (Activation) (None, 61, 61, 64) 0 batch_normalization_18[0][0]
__________________________________________________________________________________________________
activation_21 (Activation) (None, 61, 61, 96) 0 batch_normalization_21[0][0]
__________________________________________________________________________________________________
activation_22 (Activation) (None, 61, 61, 64) 0 batch_normalization_22[0][0]
__________________________________________________________________________________________________
mixed1 (Concatenate) (None, 61, 61, 288) 0 activation_16[0][0]
activation_18[0][0]
activation_21[0][0]
activation_22[0][0]
__________________________________________________________________________________________________
conv2d_57 (Conv2D) (None, 61, 61, 64) 18432 mixed1[0][0]
__________________________________________________________________________________________________
batch_normalization_26 (BatchNo (None, 61, 61, 64) 192 conv2d_57[0][0]
__________________________________________________________________________________________________
activation_26 (Activation) (None, 61, 61, 64) 0 batch_normalization_26[0][0]
__________________________________________________________________________________________________
conv2d_55 (Conv2D) (None, 61, 61, 48) 13824 mixed1[0][0]
__________________________________________________________________________________________________
conv2d_58 (Conv2D) (None, 61, 61, 96) 55296 activation_26[0][0]
__________________________________________________________________________________________________
batch_normalization_24 (BatchNo (None, 61, 61, 48) 144 conv2d_55[0][0]
__________________________________________________________________________________________________
batch_normalization_27 (BatchNo (None, 61, 61, 96) 288 conv2d_58[0][0]
__________________________________________________________________________________________________
activation_24 (Activation) (None, 61, 61, 48) 0 batch_normalization_24[0][0]
__________________________________________________________________________________________________
activation_27 (Activation) (None, 61, 61, 96) 0 batch_normalization_27[0][0]
__________________________________________________________________________________________________
average_pooling2d_2 (AveragePoo (None, 61, 61, 288) 0 mixed1[0][0]
__________________________________________________________________________________________________
conv2d_54 (Conv2D) (None, 61, 61, 64) 18432 mixed1[0][0]
__________________________________________________________________________________________________
conv2d_56 (Conv2D) (None, 61, 61, 64) 76800 activation_24[0][0]
__________________________________________________________________________________________________
conv2d_59 (Conv2D) (None, 61, 61, 96) 82944 activation_27[0][0]
__________________________________________________________________________________________________
conv2d_60 (Conv2D) (None, 61, 61, 64) 18432 average_pooling2d_2[0][0]
__________________________________________________________________________________________________
batch_normalization_23 (BatchNo (None, 61, 61, 64) 192 conv2d_54[0][0]
__________________________________________________________________________________________________
batch_normalization_25 (BatchNo (None, 61, 61, 64) 192 conv2d_56[0][0]
__________________________________________________________________________________________________
batch_normalization_28 (BatchNo (None, 61, 61, 96) 288 conv2d_59[0][0]
__________________________________________________________________________________________________
batch_normalization_29 (BatchNo (None, 61, 61, 64) 192 conv2d_60[0][0]
__________________________________________________________________________________________________
activation_23 (Activation) (None, 61, 61, 64) 0 batch_normalization_23[0][0]
__________________________________________________________________________________________________
activation_25 (Activation) (None, 61, 61, 64) 0 batch_normalization_25[0][0]
__________________________________________________________________________________________________
activation_28 (Activation) (None, 61, 61, 96) 0 batch_normalization_28[0][0]
__________________________________________________________________________________________________
activation_29 (Activation) (None, 61, 61, 64) 0 batch_normalization_29[0][0]
__________________________________________________________________________________________________
mixed2 (Concatenate) (None, 61, 61, 288) 0 activation_23[0][0]
activation_25[0][0]
activation_28[0][0]
activation_29[0][0]
__________________________________________________________________________________________________
conv2d_62 (Conv2D) (None, 61, 61, 64) 18432 mixed2[0][0]
__________________________________________________________________________________________________
batch_normalization_31 (BatchNo (None, 61, 61, 64) 192 conv2d_62[0][0]
__________________________________________________________________________________________________
activation_31 (Activation) (None, 61, 61, 64) 0 batch_normalization_31[0][0]
__________________________________________________________________________________________________
conv2d_63 (Conv2D) (None, 61, 61, 96) 55296 activation_31[0][0]
__________________________________________________________________________________________________
batch_normalization_32 (BatchNo (None, 61, 61, 96) 288 conv2d_63[0][0]
__________________________________________________________________________________________________
activation_32 (Activation) (None, 61, 61, 96) 0 batch_normalization_32[0][0]
__________________________________________________________________________________________________
conv2d_61 (Conv2D) (None, 30, 30, 384) 995328 mixed2[0][0]
__________________________________________________________________________________________________
conv2d_64 (Conv2D) (None, 30, 30, 96) 82944 activation_32[0][0]
__________________________________________________________________________________________________
batch_normalization_30 (BatchNo (None, 30, 30, 384) 1152 conv2d_61[0][0]
__________________________________________________________________________________________________
batch_normalization_33 (BatchNo (None, 30, 30, 96) 288 conv2d_64[0][0]
__________________________________________________________________________________________________
activation_30 (Activation) (None, 30, 30, 384) 0 batch_normalization_30[0][0]
__________________________________________________________________________________________________
activation_33 (Activation) (None, 30, 30, 96) 0 batch_normalization_33[0][0]
__________________________________________________________________________________________________
max_pooling2d_12 (MaxPooling2D) (None, 30, 30, 288) 0 mixed2[0][0]
__________________________________________________________________________________________________
mixed3 (Concatenate) (None, 30, 30, 768) 0 activation_30[0][0]
activation_33[0][0]
max_pooling2d_12[0][0]
__________________________________________________________________________________________________
conv2d_69 (Conv2D) (None, 30, 30, 128) 98304 mixed3[0][0]
__________________________________________________________________________________________________
batch_normalization_38 (BatchNo (None, 30, 30, 128) 384 conv2d_69[0][0]
__________________________________________________________________________________________________
activation_38 (Activation) (None, 30, 30, 128) 0 batch_normalization_38[0][0]
__________________________________________________________________________________________________
conv2d_70 (Conv2D) (None, 30, 30, 128) 114688 activation_38[0][0]
__________________________________________________________________________________________________
batch_normalization_39 (BatchNo (None, 30, 30, 128) 384 conv2d_70[0][0]
__________________________________________________________________________________________________
activation_39 (Activation) (None, 30, 30, 128) 0 batch_normalization_39[0][0]
__________________________________________________________________________________________________
conv2d_66 (Conv2D) (None, 30, 30, 128) 98304 mixed3[0][0]
__________________________________________________________________________________________________
conv2d_71 (Conv2D) (None, 30, 30, 128) 114688 activation_39[0][0]
__________________________________________________________________________________________________
batch_normalization_35 (BatchNo (None, 30, 30, 128) 384 conv2d_66[0][0]
__________________________________________________________________________________________________
batch_normalization_40 (BatchNo (None, 30, 30, 128) 384 conv2d_71[0][0]
__________________________________________________________________________________________________
activation_35 (Activation) (None, 30, 30, 128) 0 batch_normalization_35[0][0]
__________________________________________________________________________________________________
activation_40 (Activation) (None, 30, 30, 128) 0 batch_normalization_40[0][0]
__________________________________________________________________________________________________
conv2d_67 (Conv2D) (None, 30, 30, 128) 114688 activation_35[0][0]
__________________________________________________________________________________________________
conv2d_72 (Conv2D) (None, 30, 30, 128) 114688 activation_40[0][0]
__________________________________________________________________________________________________
batch_normalization_36 (BatchNo (None, 30, 30, 128) 384 conv2d_67[0][0]
__________________________________________________________________________________________________
batch_normalization_41 (BatchNo (None, 30, 30, 128) 384 conv2d_72[0][0]
__________________________________________________________________________________________________
activation_36 (Activation) (None, 30, 30, 128) 0 batch_normalization_36[0][0]
__________________________________________________________________________________________________
activation_41 (Activation) (None, 30, 30, 128) 0 batch_normalization_41[0][0]
__________________________________________________________________________________________________
average_pooling2d_3 (AveragePoo (None, 30, 30, 768) 0 mixed3[0][0]
__________________________________________________________________________________________________
conv2d_65 (Conv2D) (None, 30, 30, 192) 147456 mixed3[0][0]
__________________________________________________________________________________________________
conv2d_68 (Conv2D) (None, 30, 30, 192) 172032 activation_36[0][0]
__________________________________________________________________________________________________
conv2d_73 (Conv2D) (None, 30, 30, 192) 172032 activation_41[0][0]
__________________________________________________________________________________________________
conv2d_74 (Conv2D) (None, 30, 30, 192) 147456 average_pooling2d_3[0][0]
__________________________________________________________________________________________________
batch_normalization_34 (BatchNo (None, 30, 30, 192) 576 conv2d_65[0][0]
__________________________________________________________________________________________________
batch_normalization_37 (BatchNo (None, 30, 30, 192) 576 conv2d_68[0][0]
__________________________________________________________________________________________________
batch_normalization_42 (BatchNo (None, 30, 30, 192) 576 conv2d_73[0][0]
__________________________________________________________________________________________________
batch_normalization_43 (BatchNo (None, 30, 30, 192) 576 conv2d_74[0][0]
__________________________________________________________________________________________________
activation_34 (Activation) (None, 30, 30, 192) 0 batch_normalization_34[0][0]
__________________________________________________________________________________________________
activation_37 (Activation) (None, 30, 30, 192) 0 batch_normalization_37[0][0]
__________________________________________________________________________________________________
activation_42 (Activation) (None, 30, 30, 192) 0 batch_normalization_42[0][0]
__________________________________________________________________________________________________
activation_43 (Activation) (None, 30, 30, 192) 0 batch_normalization_43[0][0]
__________________________________________________________________________________________________
mixed4 (Concatenate) (None, 30, 30, 768) 0 activation_34[0][0]
activation_37[0][0]
activation_42[0][0]
activation_43[0][0]
__________________________________________________________________________________________________
conv2d_79 (Conv2D) (None, 30, 30, 160) 122880 mixed4[0][0]
__________________________________________________________________________________________________
batch_normalization_48 (BatchNo (None, 30, 30, 160) 480 conv2d_79[0][0]
__________________________________________________________________________________________________
activation_48 (Activation) (None, 30, 30, 160) 0 batch_normalization_48[0][0]
__________________________________________________________________________________________________
conv2d_80 (Conv2D) (None, 30, 30, 160) 179200 activation_48[0][0]
__________________________________________________________________________________________________
batch_normalization_49 (BatchNo (None, 30, 30, 160) 480 conv2d_80[0][0]
__________________________________________________________________________________________________
activation_49 (Activation) (None, 30, 30, 160) 0 batch_normalization_49[0][0]
__________________________________________________________________________________________________
conv2d_76 (Conv2D) (None, 30, 30, 160) 122880 mixed4[0][0]
__________________________________________________________________________________________________
conv2d_81 (Conv2D) (None, 30, 30, 160) 179200 activation_49[0][0]
__________________________________________________________________________________________________
batch_normalization_45 (BatchNo (None, 30, 30, 160) 480 conv2d_76[0][0]
__________________________________________________________________________________________________
batch_normalization_50 (BatchNo (None, 30, 30, 160) 480 conv2d_81[0][0]
__________________________________________________________________________________________________
activation_45 (Activation) (None, 30, 30, 160) 0 batch_normalization_45[0][0]
__________________________________________________________________________________________________
activation_50 (Activation) (None, 30, 30, 160) 0 batch_normalization_50[0][0]
__________________________________________________________________________________________________
conv2d_77 (Conv2D) (None, 30, 30, 160) 179200 activation_45[0][0]
__________________________________________________________________________________________________
conv2d_82 (Conv2D) (None, 30, 30, 160) 179200 activation_50[0][0]
__________________________________________________________________________________________________
batch_normalization_46 (BatchNo (None, 30, 30, 160) 480 conv2d_77[0][0]
__________________________________________________________________________________________________
batch_normalization_51 (BatchNo (None, 30, 30, 160) 480 conv2d_82[0][0]
__________________________________________________________________________________________________
activation_46 (Activation) (None, 30, 30, 160) 0 batch_normalization_46[0][0]
__________________________________________________________________________________________________
activation_51 (Activation) (None, 30, 30, 160) 0 batch_normalization_51[0][0]
__________________________________________________________________________________________________
average_pooling2d_4 (AveragePoo (None, 30, 30, 768) 0 mixed4[0][0]
__________________________________________________________________________________________________
conv2d_75 (Conv2D) (None, 30, 30, 192) 147456 mixed4[0][0]
__________________________________________________________________________________________________
conv2d_78 (Conv2D) (None, 30, 30, 192) 215040 activation_46[0][0]
__________________________________________________________________________________________________
conv2d_83 (Conv2D) (None, 30, 30, 192) 215040 activation_51[0][0]
__________________________________________________________________________________________________
conv2d_84 (Conv2D) (None, 30, 30, 192) 147456 average_pooling2d_4[0][0]
__________________________________________________________________________________________________
batch_normalization_44 (BatchNo (None, 30, 30, 192) 576 conv2d_75[0][0]
__________________________________________________________________________________________________
batch_normalization_47 (BatchNo (None, 30, 30, 192) 576 conv2d_78[0][0]
__________________________________________________________________________________________________
batch_normalization_52 (BatchNo (None, 30, 30, 192) 576 conv2d_83[0][0]
__________________________________________________________________________________________________
batch_normalization_53 (BatchNo (None, 30, 30, 192) 576 conv2d_84[0][0]
__________________________________________________________________________________________________
activation_44 (Activation) (None, 30, 30, 192) 0 batch_normalization_44[0][0]
__________________________________________________________________________________________________
activation_47 (Activation) (None, 30, 30, 192) 0 batch_normalization_47[0][0]
__________________________________________________________________________________________________
activation_52 (Activation) (None, 30, 30, 192) 0 batch_normalization_52[0][0]
__________________________________________________________________________________________________
activation_53 (Activation) (None, 30, 30, 192) 0 batch_normalization_53[0][0]
__________________________________________________________________________________________________
mixed5 (Concatenate) (None, 30, 30, 768) 0 activation_44[0][0]
activation_47[0][0]
activation_52[0][0]
activation_53[0][0]
__________________________________________________________________________________________________
conv2d_89 (Conv2D) (None, 30, 30, 160) 122880 mixed5[0][0]
__________________________________________________________________________________________________
batch_normalization_58 (BatchNo (None, 30, 30, 160) 480 conv2d_89[0][0]
__________________________________________________________________________________________________
activation_58 (Activation) (None, 30, 30, 160) 0 batch_normalization_58[0][0]
__________________________________________________________________________________________________
conv2d_90 (Conv2D) (None, 30, 30, 160) 179200 activation_58[0][0]
__________________________________________________________________________________________________
batch_normalization_59 (BatchNo (None, 30, 30, 160) 480 conv2d_90[0][0]
__________________________________________________________________________________________________
activation_59 (Activation) (None, 30, 30, 160) 0 batch_normalization_59[0][0]
__________________________________________________________________________________________________
conv2d_86 (Conv2D) (None, 30, 30, 160) 122880 mixed5[0][0]
__________________________________________________________________________________________________
conv2d_91 (Conv2D) (None, 30, 30, 160) 179200 activation_59[0][0]
__________________________________________________________________________________________________
batch_normalization_55 (BatchNo (None, 30, 30, 160) 480 conv2d_86[0][0]
__________________________________________________________________________________________________
batch_normalization_60 (BatchNo (None, 30, 30, 160) 480 conv2d_91[0][0]
__________________________________________________________________________________________________
activation_55 (Activation) (None, 30, 30, 160) 0 batch_normalization_55[0][0]
__________________________________________________________________________________________________
activation_60 (Activation) (None, 30, 30, 160) 0 batch_normalization_60[0][0]
__________________________________________________________________________________________________
conv2d_87 (Conv2D) (None, 30, 30, 160) 179200 activation_55[0][0]
__________________________________________________________________________________________________
conv2d_92 (Conv2D) (None, 30, 30, 160) 179200 activation_60[0][0]
__________________________________________________________________________________________________
batch_normalization_56 (BatchNo (None, 30, 30, 160) 480 conv2d_87[0][0]
__________________________________________________________________________________________________
batch_normalization_61 (BatchNo (None, 30, 30, 160) 480 conv2d_92[0][0]
__________________________________________________________________________________________________
activation_56 (Activation) (None, 30, 30, 160) 0 batch_normalization_56[0][0]
__________________________________________________________________________________________________
activation_61 (Activation) (None, 30, 30, 160) 0 batch_normalization_61[0][0]
__________________________________________________________________________________________________
average_pooling2d_5 (AveragePoo (None, 30, 30, 768) 0 mixed5[0][0]
__________________________________________________________________________________________________
conv2d_85 (Conv2D) (None, 30, 30, 192) 147456 mixed5[0][0]
__________________________________________________________________________________________________
conv2d_88 (Conv2D) (None, 30, 30, 192) 215040 activation_56[0][0]
__________________________________________________________________________________________________
conv2d_93 (Conv2D) (None, 30, 30, 192) 215040 activation_61[0][0]
__________________________________________________________________________________________________
conv2d_94 (Conv2D) (None, 30, 30, 192) 147456 average_pooling2d_5[0][0]
__________________________________________________________________________________________________
batch_normalization_54 (BatchNo (None, 30, 30, 192) 576 conv2d_85[0][0]
__________________________________________________________________________________________________
batch_normalization_57 (BatchNo (None, 30, 30, 192) 576 conv2d_88[0][0]
__________________________________________________________________________________________________
batch_normalization_62 (BatchNo (None, 30, 30, 192) 576 conv2d_93[0][0]
__________________________________________________________________________________________________
batch_normalization_63 (BatchNo (None, 30, 30, 192) 576 conv2d_94[0][0]
__________________________________________________________________________________________________
activation_54 (Activation) (None, 30, 30, 192) 0 batch_normalization_54[0][0]
__________________________________________________________________________________________________
activation_57 (Activation) (None, 30, 30, 192) 0 batch_normalization_57[0][0]
__________________________________________________________________________________________________
activation_62 (Activation) (None, 30, 30, 192) 0 batch_normalization_62[0][0]
__________________________________________________________________________________________________
activation_63 (Activation) (None, 30, 30, 192) 0 batch_normalization_63[0][0]
__________________________________________________________________________________________________
mixed6 (Concatenate) (None, 30, 30, 768) 0 activation_54[0][0]
activation_57[0][0]
activation_62[0][0]
activation_63[0][0]
__________________________________________________________________________________________________
conv2d_99 (Conv2D) (None, 30, 30, 192) 147456 mixed6[0][0]
__________________________________________________________________________________________________
batch_normalization_68 (BatchNo (None, 30, 30, 192) 576 conv2d_99[0][0]
__________________________________________________________________________________________________
activation_68 (Activation) (None, 30, 30, 192) 0 batch_normalization_68[0][0]
__________________________________________________________________________________________________
conv2d_100 (Conv2D) (None, 30, 30, 192) 258048 activation_68[0][0]
__________________________________________________________________________________________________
batch_normalization_69 (BatchNo (None, 30, 30, 192) 576 conv2d_100[0][0]
__________________________________________________________________________________________________
activation_69 (Activation) (None, 30, 30, 192) 0 batch_normalization_69[0][0]
__________________________________________________________________________________________________
conv2d_96 (Conv2D) (None, 30, 30, 192) 147456 mixed6[0][0]
__________________________________________________________________________________________________
conv2d_101 (Conv2D) (None, 30, 30, 192) 258048 activation_69[0][0]
__________________________________________________________________________________________________
batch_normalization_65 (BatchNo (None, 30, 30, 192) 576 conv2d_96[0][0]
__________________________________________________________________________________________________
batch_normalization_70 (BatchNo (None, 30, 30, 192) 576 conv2d_101[0][0]
__________________________________________________________________________________________________
activation_65 (Activation) (None, 30, 30, 192) 0 batch_normalization_65[0][0]
__________________________________________________________________________________________________
activation_70 (Activation) (None, 30, 30, 192) 0 batch_normalization_70[0][0]
__________________________________________________________________________________________________
conv2d_97 (Conv2D) (None, 30, 30, 192) 258048 activation_65[0][0]
__________________________________________________________________________________________________
conv2d_102 (Conv2D) (None, 30, 30, 192) 258048 activation_70[0][0]
__________________________________________________________________________________________________
batch_normalization_66 (BatchNo (None, 30, 30, 192) 576 conv2d_97[0][0]
__________________________________________________________________________________________________
batch_normalization_71 (BatchNo (None, 30, 30, 192) 576 conv2d_102[0][0]
__________________________________________________________________________________________________
activation_66 (Activation) (None, 30, 30, 192) 0 batch_normalization_66[0][0]
__________________________________________________________________________________________________
activation_71 (Activation) (None, 30, 30, 192) 0 batch_normalization_71[0][0]
__________________________________________________________________________________________________
average_pooling2d_6 (AveragePoo (None, 30, 30, 768) 0 mixed6[0][0]
__________________________________________________________________________________________________
conv2d_95 (Conv2D) (None, 30, 30, 192) 147456 mixed6[0][0]
__________________________________________________________________________________________________
conv2d_98 (Conv2D) (None, 30, 30, 192) 258048 activation_66[0][0]
__________________________________________________________________________________________________
conv2d_103 (Conv2D) (None, 30, 30, 192) 258048 activation_71[0][0]
__________________________________________________________________________________________________
conv2d_104 (Conv2D) (None, 30, 30, 192) 147456 average_pooling2d_6[0][0]
__________________________________________________________________________________________________
batch_normalization_64 (BatchNo (None, 30, 30, 192) 576 conv2d_95[0][0]
__________________________________________________________________________________________________
batch_normalization_67 (BatchNo (None, 30, 30, 192) 576 conv2d_98[0][0]
__________________________________________________________________________________________________
batch_normalization_72 (BatchNo (None, 30, 30, 192) 576 conv2d_103[0][0]
__________________________________________________________________________________________________
batch_normalization_73 (BatchNo (None, 30, 30, 192) 576 conv2d_104[0][0]
__________________________________________________________________________________________________
activation_64 (Activation) (None, 30, 30, 192) 0 batch_normalization_64[0][0]
__________________________________________________________________________________________________
activation_67 (Activation) (None, 30, 30, 192) 0 batch_normalization_67[0][0]
__________________________________________________________________________________________________
activation_72 (Activation) (None, 30, 30, 192) 0 batch_normalization_72[0][0]
__________________________________________________________________________________________________
activation_73 (Activation) (None, 30, 30, 192) 0 batch_normalization_73[0][0]
__________________________________________________________________________________________________
mixed7 (Concatenate) (None, 30, 30, 768) 0 activation_64[0][0]
activation_67[0][0]
activation_72[0][0]
activation_73[0][0]
__________________________________________________________________________________________________
conv2d_107 (Conv2D) (None, 30, 30, 192) 147456 mixed7[0][0]
__________________________________________________________________________________________________
batch_normalization_76 (BatchNo (None, 30, 30, 192) 576 conv2d_107[0][0]
__________________________________________________________________________________________________
activation_76 (Activation) (None, 30, 30, 192) 0 batch_normalization_76[0][0]
__________________________________________________________________________________________________
conv2d_108 (Conv2D) (None, 30, 30, 192) 258048 activation_76[0][0]
__________________________________________________________________________________________________
batch_normalization_77 (BatchNo (None, 30, 30, 192) 576 conv2d_108[0][0]
__________________________________________________________________________________________________
activation_77 (Activation) (None, 30, 30, 192) 0 batch_normalization_77[0][0]
__________________________________________________________________________________________________
conv2d_105 (Conv2D) (None, 30, 30, 192) 147456 mixed7[0][0]
__________________________________________________________________________________________________
conv2d_109 (Conv2D) (None, 30, 30, 192) 258048 activation_77[0][0]
__________________________________________________________________________________________________
batch_normalization_74 (BatchNo (None, 30, 30, 192) 576 conv2d_105[0][0]
__________________________________________________________________________________________________
batch_normalization_78 (BatchNo (None, 30, 30, 192) 576 conv2d_109[0][0]
__________________________________________________________________________________________________
activation_74 (Activation) (None, 30, 30, 192) 0 batch_normalization_74[0][0]
__________________________________________________________________________________________________
activation_78 (Activation) (None, 30, 30, 192) 0 batch_normalization_78[0][0]
__________________________________________________________________________________________________
conv2d_106 (Conv2D) (None, 14, 14, 320) 552960 activation_74[0][0]
__________________________________________________________________________________________________
conv2d_110 (Conv2D) (None, 14, 14, 192) 331776 activation_78[0][0]
__________________________________________________________________________________________________
batch_normalization_75 (BatchNo (None, 14, 14, 320) 960 conv2d_106[0][0]
__________________________________________________________________________________________________
batch_normalization_79 (BatchNo (None, 14, 14, 192) 576 conv2d_110[0][0]
__________________________________________________________________________________________________
activation_75 (Activation) (None, 14, 14, 320) 0 batch_normalization_75[0][0]
__________________________________________________________________________________________________
activation_79 (Activation) (None, 14, 14, 192) 0 batch_normalization_79[0][0]
__________________________________________________________________________________________________
max_pooling2d_13 (MaxPooling2D) (None, 14, 14, 768) 0 mixed7[0][0]
__________________________________________________________________________________________________
mixed8 (Concatenate) (None, 14, 14, 1280) 0 activation_75[0][0]
activation_79[0][0]
max_pooling2d_13[0][0]
__________________________________________________________________________________________________
conv2d_115 (Conv2D) (None, 14, 14, 448) 573440 mixed8[0][0]
__________________________________________________________________________________________________
batch_normalization_84 (BatchNo (None, 14, 14, 448) 1344 conv2d_115[0][0]
__________________________________________________________________________________________________
activation_84 (Activation) (None, 14, 14, 448) 0 batch_normalization_84[0][0]
__________________________________________________________________________________________________
conv2d_112 (Conv2D) (None, 14, 14, 384) 491520 mixed8[0][0]
__________________________________________________________________________________________________
conv2d_116 (Conv2D) (None, 14, 14, 384) 1548288 activation_84[0][0]
__________________________________________________________________________________________________
batch_normalization_81 (BatchNo (None, 14, 14, 384) 1152 conv2d_112[0][0]
__________________________________________________________________________________________________
batch_normalization_85 (BatchNo (None, 14, 14, 384) 1152 conv2d_116[0][0]
__________________________________________________________________________________________________
activation_81 (Activation) (None, 14, 14, 384) 0 batch_normalization_81[0][0]
__________________________________________________________________________________________________
activation_85 (Activation) (None, 14, 14, 384) 0 batch_normalization_85[0][0]
__________________________________________________________________________________________________
conv2d_113 (Conv2D) (None, 14, 14, 384) 442368 activation_81[0][0]
__________________________________________________________________________________________________
conv2d_114 (Conv2D) (None, 14, 14, 384) 442368 activation_81[0][0]
__________________________________________________________________________________________________
conv2d_117 (Conv2D) (None, 14, 14, 384) 442368 activation_85[0][0]
__________________________________________________________________________________________________
conv2d_118 (Conv2D) (None, 14, 14, 384) 442368 activation_85[0][0]
__________________________________________________________________________________________________
average_pooling2d_7 (AveragePoo (None, 14, 14, 1280) 0 mixed8[0][0]
__________________________________________________________________________________________________
conv2d_111 (Conv2D) (None, 14, 14, 320) 409600 mixed8[0][0]
__________________________________________________________________________________________________
batch_normalization_82 (BatchNo (None, 14, 14, 384) 1152 conv2d_113[0][0]
__________________________________________________________________________________________________
batch_normalization_83 (BatchNo (None, 14, 14, 384) 1152 conv2d_114[0][0]
__________________________________________________________________________________________________
batch_normalization_86 (BatchNo (None, 14, 14, 384) 1152 conv2d_117[0][0]
__________________________________________________________________________________________________
batch_normalization_87 (BatchNo (None, 14, 14, 384) 1152 conv2d_118[0][0]
__________________________________________________________________________________________________
conv2d_119 (Conv2D) (None, 14, 14, 192) 245760 average_pooling2d_7[0][0]
__________________________________________________________________________________________________
batch_normalization_80 (BatchNo (None, 14, 14, 320) 960 conv2d_111[0][0]
__________________________________________________________________________________________________
activation_82 (Activation) (None, 14, 14, 384) 0 batch_normalization_82[0][0]
__________________________________________________________________________________________________
activation_83 (Activation) (None, 14, 14, 384) 0 batch_normalization_83[0][0]
__________________________________________________________________________________________________
activation_86 (Activation) (None, 14, 14, 384) 0 batch_normalization_86[0][0]
__________________________________________________________________________________________________
activation_87 (Activation) (None, 14, 14, 384) 0 batch_normalization_87[0][0]
__________________________________________________________________________________________________
batch_normalization_88 (BatchNo (None, 14, 14, 192) 576 conv2d_119[0][0]
__________________________________________________________________________________________________
activation_80 (Activation) (None, 14, 14, 320) 0 batch_normalization_80[0][0]
__________________________________________________________________________________________________
mixed9_0 (Concatenate) (None, 14, 14, 768) 0 activation_82[0][0]
activation_83[0][0]
__________________________________________________________________________________________________
concatenate_5 (Concatenate) (None, 14, 14, 768) 0 activation_86[0][0]
activation_87[0][0]
__________________________________________________________________________________________________
activation_88 (Activation) (None, 14, 14, 192) 0 batch_normalization_88[0][0]
__________________________________________________________________________________________________
mixed9 (Concatenate) (None, 14, 14, 2048) 0 activation_80[0][0]
mixed9_0[0][0]
concatenate_5[0][0]
activation_88[0][0]
__________________________________________________________________________________________________
conv2d_124 (Conv2D) (None, 14, 14, 448) 917504 mixed9[0][0]
__________________________________________________________________________________________________
batch_normalization_93 (BatchNo (None, 14, 14, 448) 1344 conv2d_124[0][0]
__________________________________________________________________________________________________
activation_93 (Activation) (None, 14, 14, 448) 0 batch_normalization_93[0][0]
__________________________________________________________________________________________________
conv2d_121 (Conv2D) (None, 14, 14, 384) 786432 mixed9[0][0]
__________________________________________________________________________________________________
conv2d_125 (Conv2D) (None, 14, 14, 384) 1548288 activation_93[0][0]
__________________________________________________________________________________________________
batch_normalization_90 (BatchNo (None, 14, 14, 384) 1152 conv2d_121[0][0]
__________________________________________________________________________________________________
batch_normalization_94 (BatchNo (None, 14, 14, 384) 1152 conv2d_125[0][0]
__________________________________________________________________________________________________
activation_90 (Activation) (None, 14, 14, 384) 0 batch_normalization_90[0][0]
__________________________________________________________________________________________________
activation_94 (Activation) (None, 14, 14, 384) 0 batch_normalization_94[0][0]
__________________________________________________________________________________________________
conv2d_122 (Conv2D) (None, 14, 14, 384) 442368 activation_90[0][0]
__________________________________________________________________________________________________
conv2d_123 (Conv2D) (None, 14, 14, 384) 442368 activation_90[0][0]
__________________________________________________________________________________________________
conv2d_126 (Conv2D) (None, 14, 14, 384) 442368 activation_94[0][0]
__________________________________________________________________________________________________
conv2d_127 (Conv2D) (None, 14, 14, 384) 442368 activation_94[0][0]
__________________________________________________________________________________________________
average_pooling2d_8 (AveragePoo (None, 14, 14, 2048) 0 mixed9[0][0]
__________________________________________________________________________________________________
conv2d_120 (Conv2D) (None, 14, 14, 320) 655360 mixed9[0][0]
__________________________________________________________________________________________________
batch_normalization_91 (BatchNo (None, 14, 14, 384) 1152 conv2d_122[0][0]
__________________________________________________________________________________________________
batch_normalization_92 (BatchNo (None, 14, 14, 384) 1152 conv2d_123[0][0]
__________________________________________________________________________________________________
batch_normalization_95 (BatchNo (None, 14, 14, 384) 1152 conv2d_126[0][0]
__________________________________________________________________________________________________
batch_normalization_96 (BatchNo (None, 14, 14, 384) 1152 conv2d_127[0][0]
__________________________________________________________________________________________________
conv2d_128 (Conv2D) (None, 14, 14, 192) 393216 average_pooling2d_8[0][0]
__________________________________________________________________________________________________
batch_normalization_89 (BatchNo (None, 14, 14, 320) 960 conv2d_120[0][0]
__________________________________________________________________________________________________
activation_91 (Activation) (None, 14, 14, 384) 0 batch_normalization_91[0][0]
__________________________________________________________________________________________________
activation_92 (Activation) (None, 14, 14, 384) 0 batch_normalization_92[0][0]
__________________________________________________________________________________________________
activation_95 (Activation) (None, 14, 14, 384) 0 batch_normalization_95[0][0]
__________________________________________________________________________________________________
activation_96 (Activation) (None, 14, 14, 384) 0 batch_normalization_96[0][0]
__________________________________________________________________________________________________
batch_normalization_97 (BatchNo (None, 14, 14, 192) 576 conv2d_128[0][0]
__________________________________________________________________________________________________
activation_89 (Activation) (None, 14, 14, 320) 0 batch_normalization_89[0][0]
__________________________________________________________________________________________________
mixed9_1 (Concatenate) (None, 14, 14, 768) 0 activation_91[0][0]
activation_92[0][0]
__________________________________________________________________________________________________
concatenate_6 (Concatenate) (None, 14, 14, 768) 0 activation_95[0][0]
activation_96[0][0]
__________________________________________________________________________________________________
activation_97 (Activation) (None, 14, 14, 192) 0 batch_normalization_97[0][0]
__________________________________________________________________________________________________
mixed10 (Concatenate) (None, 14, 14, 2048) 0 activation_89[0][0]
mixed9_1[0][0]
concatenate_6[0][0]
activation_97[0][0]
__________________________________________________________________________________________________
global_average_pooling2d_1 (Glo (None, 2048) 0 mixed10[0][0]
__________________________________________________________________________________________________
dense_4 (Dense) (None, 516) 1057284 global_average_pooling2d_1[0][0]
__________________________________________________________________________________________________
dropout_2 (Dropout) (None, 516) 0 dense_4[0][0]
__________________________________________________________________________________________________
dense_5 (Dense) (None, 256) 132352 dropout_2[0][0]
__________________________________________________________________________________________________
dropout_3 (Dropout) (None, 256) 0 dense_5[0][0]
__________________________________________________________________________________________________
dense_6 (Dense) (None, 64) 16448 dropout_3[0][0]
__________________________________________________________________________________________________
dense_7 (Dense) (None, 2) 130 dense_6[0][0]
==================================================================================================
Total params: 23,008,998
Trainable params: 3,141,574
Non-trainable params: 19,867,424
__________________________________________________________________________________________________
None
# Define modifier to replace the sigmoid function of the last layer to a linear function
def model_modifier(m):
m.layers[-1].activation = tf.keras.activations.linear
# Define losses functions. 0 is the index for a normal MRI
loss_normal = lambda output: K.mean(output[:, 0])
# Define losses functions. 1 is the index for a diffuse malformation of cortical development MRI
loss_diffuseMCD = lambda output: K.mean(output[:, 1])
# Create Gradcam object
gradcam = Gradcam(model, model_modifier)
# Create Saliency object
saliency = Saliency(model, model_modifier)
# Iterate through the MRIs in test set
# Set background to white color
plt.rcParams['axes.facecolor']='white'
plt.rcParams['figure.facecolor']='white'
plt.rcParams['figure.edgecolor']='white'
print('\n \n' + '\033[1m' + 'EACH ORIGINAL MRI IS ANALYZED WITH TWO METHODS: CLASS ACTIVATION MAP (UPPER ROW) AND SALIENCY MAP (LOWER ROW)' + '\033[0m' + '\n')
print('\033[1m' + 'EACH MAP IS SUPERIMPOSED ON THE ORIGINAL MRI WITH A TRANSPARENCY THAT IS INVERSELY PROPORTIONAL TO THE ESTIMATED PROBABILITY OF THE MRI BELONGING TO THAT CATEGORY (NORMAL MRI, DIFFUSE CORTICAL MALFORMATION) \n \nHIGHER ESTIMATED PROBABILITIES PRODUCE CLEARLY SEEN MAPS OVERLAID ON THE ORIGINAL MRI AND LOWER ESTIMATED PROBABILITIES PRODUCE VERY TRANSPARENT OR NOT APPRECIABLE MAPS OVERLAID ON THE ORIGINAL MRI' + '\033[0m'+ '\n')
for i in range(20):
# Print spaces to separate from the next image
print('\n \n \n \n \n \n')
# Print real classification of the image
if y_true[i]==0:
real_classification='Normal MRI'
elif y_true[i]==1:
real_classification='Diffuse MCD'
print('\033[1m' + 'REAL CLASSIFICATION OF THE IMAGE: {}'.format(real_classification) + '\033[0m')
# Print model classification and model probability of MCD
if y_predInceptionV3[i]==0:
predicted_classification='Normal MRI'
elif y_predInceptionV3[i]==1:
predicted_classification='Diffuse MCD'
print('\033[1m' + 'MODEL CLASSIFICATION OF THE IMAGE: {}'.format(predicted_classification) + '\033[0m \n')
print('\033[1m' + ' Prob. Normal MRI: {:.4f} '.format(valInceptionV3[i][0]) + 'Prob. Diffuse MCD: {:.4f} '.format(valInceptionV3[i][1]) + '\033[0m')
# Arrays to plot
original_image=shuffled_val_X[i]
list_heatmaps=[
# GradCam heatmap for normal MRI
normalize(gradcam(loss_normal, shuffled_val_X[i])),
# GradCam heatmap for diffuse MCD
normalize(gradcam(loss_diffuseMCD, shuffled_val_X[i])),
# Saliency heatmap for normal MRI
normalize(saliency(loss_normal, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2)),
# Saliency heatmap for diffuse MCD
normalize(saliency(loss_diffuseMCD, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2))
]
# Define figure
f=plt.figure(figsize=(20, 8))
# Define the image grid
grid = ImageGrid(f, 111,
nrows_ncols=(2, 2),
axes_pad=0.05,
share_all=True,
cbar_location="right",
cbar_mode=None,
cbar_size="2%",
cbar_pad=0.15)
# Iterate over the graphs
for j, axis in enumerate(grid):
# Plot original
im=axis.imshow(original_image)
im=axis.imshow(list_heatmaps[j][0], cmap='jet', alpha=0.5*valInceptionV3[i][j%2])
im=axis.set_xticks([])
im=axis.set_yticks([])
# Create scalarmappable for obtaining the colorbar from 0 to 1
sm = plt.cm.ScalarMappable(cmap='jet', norm=plt.Normalize(vmin=0, vmax=1))
plt.colorbar(sm)
plt.show()
EACH ORIGINAL MRI IS ANALYZED WITH TWO METHODS: CLASS ACTIVATION MAP (UPPER ROW) AND SALIENCY MAP (LOWER ROW) EACH MAP IS SUPERIMPOSED ON THE ORIGINAL MRI WITH A TRANSPARENCY THAT IS INVERSELY PROPORTIONAL TO THE ESTIMATED PROBABILITY OF THE MRI BELONGING TO THAT CATEGORY (NORMAL MRI, DIFFUSE CORTICAL MALFORMATION) HIGHER ESTIMATED PROBABILITIES PRODUCE CLEARLY SEEN MAPS OVERLAID ON THE ORIGINAL MRI AND LOWER ESTIMATED PROBABILITIES PRODUCE VERY TRANSPARENT OR NOT APPRECIABLE MAPS OVERLAID ON THE ORIGINAL MRI REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9092 Prob. Diffuse MCD: 0.0908
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9646 Prob. Diffuse MCD: 0.0354
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9999 Prob. Diffuse MCD: 0.0001
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.2300 Prob. Diffuse MCD: 0.7700
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9989 Prob. Diffuse MCD: 0.0011
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9969 Prob. Diffuse MCD: 0.0031
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0004 Prob. Diffuse MCD: 0.9996
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0004 Prob. Diffuse MCD: 0.9996
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9777 Prob. Diffuse MCD: 0.0223
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9999 Prob. Diffuse MCD: 0.0001
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0001 Prob. Diffuse MCD: 0.9999
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
# Use ResNet50 as the base model
base_model = tf.keras.applications.resnet50.ResNet50(layers=tf.keras.layers, weights = 'imagenet', include_top = False, input_shape=train_X.shape[1:])
# Get the output of the base model
x = base_model.output
# Add a 2D global average pooling layer
x = GlobalAveragePooling2D()(x)
## Add the fully-connected layers
x = Dense(units=516, activation='relu')(x)
x = Dropout(rate=0.5)(x)
x = Dense(units=256, activation='relu')(x)
x = Dropout(rate=0.5)(x)
x = Dense(units=64, activation='relu')(x)
# Ad a layer for multiclass classification
predictions = Dense(units = 2, activation = 'softmax')(x)
# Define the model to be trained
model = Model(inputs = base_model.input, outputs = predictions)
# Train the last 20 layers in the base model
for layer in base_model.layers[:-20]:
layer.trainable = False
for layer in base_model.layers[-20:]:
layer.trainable = True
# Compile the model
opt = Adam(lr = 0.0001)
model.compile(optimizer = opt, loss = 'categorical_crossentropy', metrics = ['accuracy'])
# Fit and test the model in the validation set
historyResNet50 = model.fit(shuffled_train_X, shuffled_train_y, validation_data = [shuffled_val_X, shuffled_val_y], epochs = 50, batch_size = 32)
print('\n')
print('\n')
# AUC in train and validation set
auc_trainResNet50 = roc_auc_score(shuffled_train_y, model.predict(shuffled_train_X))
print('The AUC in the train set is {:.4f}.'.format(auc_trainResNet50))
print('\n')
print('\n')
auc_validResNet50 = roc_auc_score(shuffled_val_y, model.predict(shuffled_val_X))
print('The AUC in the validation set is {:.4f}.'.format(auc_validResNet50))
print('\n')
print('\n')
print('\n')
print('\n')
# Figure size and colors
mpl.rcParams['figure.figsize'] = (20,24)
plt.rcParams['axes.facecolor']='white'
plt.rcParams['figure.facecolor']='lightgreen'
plt.rcParams['figure.edgecolor']='black'
# Plot history of loss during training
plt.plot(historyResNet50.history['loss'], label='Train', color='red')
plt.plot(historyResNet50.history['val_loss'], label='Validation', color='blue')
plt.title('Loss in train and validation set', size=30)
plt.xlabel('Epoch', size=24)
plt.ylabel('Categorical cross-entropy loss', size=24)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.legend(fontsize=20)
plt.ylim(ymin=0, ymax=5)
plt.grid(b=None)
plt.show()
print('\n')
print('\n')
print('\n')
print('\n')
# Plot history of accuracy
plt.plot(historyResNet50.history['accuracy'], label='Train', color='red')
plt.plot(historyResNet50.history['val_accuracy'], label='Validation', color='blue')
plt.title('Accuracy in train and validation set', size=30)
plt.xlabel('Epoch', size=24)
plt.ylabel('Accuracy', size=24)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.legend(fontsize=20)
plt.ylim(ymin=0, ymax=1.1)
plt.grid(b=None)
plt.show()
Train on 5389 samples, validate on 306 samples Epoch 1/50 5389/5389 [==============================] - 37s 7ms/sample - loss: 0.6999 - accuracy: 0.5628 - val_loss: 0.7227 - val_accuracy: 0.5196 Epoch 2/50 5389/5389 [==============================] - 31s 6ms/sample - loss: 0.6055 - accuracy: 0.6745 - val_loss: 1.1762 - val_accuracy: 0.5196 Epoch 3/50 5389/5389 [==============================] - 31s 6ms/sample - loss: 0.5328 - accuracy: 0.7380 - val_loss: 0.7939 - val_accuracy: 0.6307 Epoch 4/50 5389/5389 [==============================] - 35s 7ms/sample - loss: 0.4732 - accuracy: 0.7725 - val_loss: 1.1789 - val_accuracy: 0.5621 Epoch 5/50 5389/5389 [==============================] - 32s 6ms/sample - loss: 0.4154 - accuracy: 0.8074 - val_loss: 0.7773 - val_accuracy: 0.5948 Epoch 6/50 5389/5389 [==============================] - 31s 6ms/sample - loss: 0.3803 - accuracy: 0.8252 - val_loss: 0.6786 - val_accuracy: 0.5686 Epoch 7/50 5389/5389 [==============================] - 34s 6ms/sample - loss: 0.3375 - accuracy: 0.8575 - val_loss: 1.1172 - val_accuracy: 0.6765 Epoch 8/50 5389/5389 [==============================] - 32s 6ms/sample - loss: 0.2837 - accuracy: 0.8801 - val_loss: 2.9408 - val_accuracy: 0.5784 Epoch 9/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.2621 - accuracy: 0.8911 - val_loss: 0.8920 - val_accuracy: 0.6438 Epoch 10/50 5389/5389 [==============================] - 32s 6ms/sample - loss: 0.2353 - accuracy: 0.9009 - val_loss: 3.3944 - val_accuracy: 0.5327 Epoch 11/50 5389/5389 [==============================] - 31s 6ms/sample - loss: 0.2035 - accuracy: 0.9152 - val_loss: 1.0957 - val_accuracy: 0.6830 Epoch 12/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.1785 - accuracy: 0.9243 - val_loss: 2.2886 - val_accuracy: 0.5588 Epoch 13/50 5389/5389 [==============================] - 31s 6ms/sample - loss: 0.1714 - accuracy: 0.9317 - val_loss: 0.8494 - val_accuracy: 0.7059 Epoch 14/50 5389/5389 [==============================] - 33s 6ms/sample - loss: 0.1431 - accuracy: 0.9454 - val_loss: 1.3771 - val_accuracy: 0.6209 Epoch 15/50 5389/5389 [==============================] - 35s 7ms/sample - loss: 0.1471 - accuracy: 0.9454 - val_loss: 1.0114 - val_accuracy: 0.6405 Epoch 16/50 5389/5389 [==============================] - 31s 6ms/sample - loss: 0.1212 - accuracy: 0.9540 - val_loss: 5.3639 - val_accuracy: 0.5523 Epoch 17/50 5389/5389 [==============================] - 34s 6ms/sample - loss: 0.1047 - accuracy: 0.9614 - val_loss: 1.2408 - val_accuracy: 0.6863 Epoch 18/50 5389/5389 [==============================] - 33s 6ms/sample - loss: 0.1042 - accuracy: 0.9581 - val_loss: 2.5294 - val_accuracy: 0.6405 Epoch 19/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0915 - accuracy: 0.9672 - val_loss: 1.8542 - val_accuracy: 0.6503 Epoch 20/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0967 - accuracy: 0.9672 - val_loss: 8.3898 - val_accuracy: 0.5229 Epoch 21/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0871 - accuracy: 0.9668 - val_loss: 2.0462 - val_accuracy: 0.6373 Epoch 22/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0660 - accuracy: 0.9764 - val_loss: 4.7385 - val_accuracy: 0.5980 Epoch 23/50 5389/5389 [==============================] - 33s 6ms/sample - loss: 0.0740 - accuracy: 0.9749 - val_loss: 1.7845 - val_accuracy: 0.7418 Epoch 24/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0654 - accuracy: 0.9766 - val_loss: 2.0075 - val_accuracy: 0.6373 Epoch 25/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0697 - accuracy: 0.9755 - val_loss: 2.0208 - val_accuracy: 0.6405 Epoch 26/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0641 - accuracy: 0.9775 - val_loss: 3.9267 - val_accuracy: 0.4967 Epoch 27/50 5389/5389 [==============================] - 31s 6ms/sample - loss: 0.0515 - accuracy: 0.9835 - val_loss: 2.9138 - val_accuracy: 0.6111 Epoch 28/50 5389/5389 [==============================] - 32s 6ms/sample - loss: 0.0546 - accuracy: 0.9814 - val_loss: 1.5083 - val_accuracy: 0.7451 Epoch 29/50 5389/5389 [==============================] - 31s 6ms/sample - loss: 0.0496 - accuracy: 0.9824 - val_loss: 1.9997 - val_accuracy: 0.5882 Epoch 30/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0623 - accuracy: 0.9785 - val_loss: 2.7680 - val_accuracy: 0.6405 Epoch 31/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0537 - accuracy: 0.9796 - val_loss: 4.0078 - val_accuracy: 0.5980 Epoch 32/50 5389/5389 [==============================] - 31s 6ms/sample - loss: 0.0459 - accuracy: 0.9835 - val_loss: 1.7739 - val_accuracy: 0.6275 Epoch 33/50 5389/5389 [==============================] - 31s 6ms/sample - loss: 0.0401 - accuracy: 0.9865 - val_loss: 1.9873 - val_accuracy: 0.6634 Epoch 34/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0460 - accuracy: 0.9868 - val_loss: 4.8099 - val_accuracy: 0.6242 Epoch 35/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0640 - accuracy: 0.9774 - val_loss: 1.8380 - val_accuracy: 0.5784 Epoch 36/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0493 - accuracy: 0.9835 - val_loss: 2.4349 - val_accuracy: 0.5850 Epoch 37/50 5389/5389 [==============================] - 34s 6ms/sample - loss: 0.0443 - accuracy: 0.9824 - val_loss: 2.1167 - val_accuracy: 0.5882 Epoch 38/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0462 - accuracy: 0.9839 - val_loss: 1.6364 - val_accuracy: 0.6471 Epoch 39/50 5389/5389 [==============================] - 31s 6ms/sample - loss: 0.0337 - accuracy: 0.9885 - val_loss: 4.5378 - val_accuracy: 0.5980 Epoch 40/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0409 - accuracy: 0.9848 - val_loss: 15.0776 - val_accuracy: 0.4869 Epoch 41/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0269 - accuracy: 0.9915 - val_loss: 2.1505 - val_accuracy: 0.6863 Epoch 42/50 5389/5389 [==============================] - 32s 6ms/sample - loss: 0.0370 - accuracy: 0.9866 - val_loss: 2.6321 - val_accuracy: 0.5980 Epoch 43/50 5389/5389 [==============================] - 33s 6ms/sample - loss: 0.0330 - accuracy: 0.9891 - val_loss: 1.4916 - val_accuracy: 0.7516 Epoch 44/50 5389/5389 [==============================] - 31s 6ms/sample - loss: 0.0229 - accuracy: 0.9926 - val_loss: 3.2797 - val_accuracy: 0.5686 Epoch 45/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0377 - accuracy: 0.9876 - val_loss: 1.6897 - val_accuracy: 0.7190 Epoch 46/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0192 - accuracy: 0.9939 - val_loss: 2.3315 - val_accuracy: 0.6667 Epoch 47/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0360 - accuracy: 0.9887 - val_loss: 3.6878 - val_accuracy: 0.6275 Epoch 48/50 5389/5389 [==============================] - 32s 6ms/sample - loss: 0.0211 - accuracy: 0.9924 - val_loss: 3.5768 - val_accuracy: 0.6634 Epoch 49/50 5389/5389 [==============================] - 32s 6ms/sample - loss: 0.0294 - accuracy: 0.9909 - val_loss: 2.9565 - val_accuracy: 0.6569 Epoch 50/50 5389/5389 [==============================] - 30s 6ms/sample - loss: 0.0320 - accuracy: 0.9879 - val_loss: 3.1328 - val_accuracy: 0.6275 The AUC in the train set is 0.9135. The AUC in the validation set is 0.7349.
# Generate predictions in the form of probabilities for the validation set
valResNet50 = model.predict(shuffled_val_X, batch_size = 32)
# Generate the confusion matrix in the validation set
y_true = np.argmax(shuffled_val_y, axis=1)
y_predResNet50 = np.argmax(valResNet50, axis=1)
# Confusion matrix
pd.DataFrame(confusion_matrix(y_true, y_predResNet50), index=['True: Normal', 'True: Diffuse CM'], columns=['Prediction: Normal', 'Prediction: Diffuse CM']).T
| True: Normal | True: Diffuse CM | |
|---|---|---|
| Prediction: Normal | 138 | 93 |
| Prediction: Diffuse CM | 21 | 54 |
# Calculate accuracy in the validation set
accuracy_ResNet50 = accuracy_score(y_true=y_true, y_pred=y_predResNet50)
print('The accuracy in the validation set is {:.4f}.'.format(accuracy_ResNet50))
The accuracy in the validation set is 0.6275.
# Calculate AUC in the validation set
auc_validResNet50 = roc_auc_score(shuffled_val_y, model.predict(shuffled_val_X))
print('The AUC in the validation set is {:.4f}.'.format(auc_validResNet50))
The AUC in the validation set is 0.7349.
# Classification report
print(classification_report(y_true, y_predResNet50, target_names=['Normal MRI', 'Diffuse CM']))
precision recall f1-score support
Normal MRI 0.60 0.87 0.71 159
Diffuse CM 0.72 0.37 0.49 147
accuracy 0.63 306
macro avg 0.66 0.62 0.60 306
weighted avg 0.66 0.63 0.60 306
# Serialize model to JSON
model_json = model.to_json()
with open("ResNet50.json", "w") as json_file:
json_file.write(model_json)
# Serialize weights to HDF5
model.save_weights("ResNet50.h5")
# Visualize the structure and layers of the model
model.layers
[<tensorflow.python.keras.engine.input_layer.InputLayer at 0x7f647c359208>, <tensorflow.python.keras.layers.convolutional.ZeroPadding2D at 0x7f647c3592e8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c3596d8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c359d68>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c359d30>, <tensorflow.python.keras.layers.convolutional.ZeroPadding2D at 0x7f647c3598d0>, <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f647c34e0f0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64307c9630>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64307f0f98>, <tensorflow.python.keras.layers.core.Activation at 0x7f64307d0d30>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64307d0c18>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6430669ef0>, <tensorflow.python.keras.layers.core.Activation at 0x7f643065bf28>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c33cf60>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f643065b128>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64307f0b70>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6428672ba8>, <tensorflow.python.keras.layers.merge.Add at 0x7f6428672b70>, <tensorflow.python.keras.layers.core.Activation at 0x7f6428672fd0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6428672c18>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6428645f60>, <tensorflow.python.keras.layers.core.Activation at 0x7f643077d668>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f643077d940>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f643078de10>, <tensorflow.python.keras.layers.core.Activation at 0x7f643078ddd8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6430780128>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c259588>, <tensorflow.python.keras.layers.merge.Add at 0x7f647c259550>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c2598d0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c259978>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f643075cc50>, <tensorflow.python.keras.layers.core.Activation at 0x7f6430763b70>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64307630b8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64285f07f0>, <tensorflow.python.keras.layers.core.Activation at 0x7f64285f07b8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64285f0b38>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64285d0f28>, <tensorflow.python.keras.layers.merge.Add at 0x7f64285d0ef0>, <tensorflow.python.keras.layers.core.Activation at 0x7f64285bc048>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64286ac9e8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64286a5518>, <tensorflow.python.keras.layers.core.Activation at 0x7f648844dda0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64884570b8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6488243518>, <tensorflow.python.keras.layers.core.Activation at 0x7f648824c048>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64285bcac8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64882431d0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64286aca20>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f648826fc50>, <tensorflow.python.keras.layers.merge.Add at 0x7f648826fc18>, <tensorflow.python.keras.layers.core.Activation at 0x7f648826fef0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6488273780>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6488223748>, <tensorflow.python.keras.layers.core.Activation at 0x7f6488223710>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64882239e8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64881d0eb8>, <tensorflow.python.keras.layers.core.Activation at 0x7f64881d0e80>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64881d71d0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6488185630>, <tensorflow.python.keras.layers.merge.Add at 0x7f64881855f8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6488185978>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6488185a20>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64881b1cf8>, <tensorflow.python.keras.layers.core.Activation at 0x7f64881b8c18>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64881b8160>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6488165898>, <tensorflow.python.keras.layers.core.Activation at 0x7f6488165860>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6488165be0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6488110fd0>, <tensorflow.python.keras.layers.merge.Add at 0x7f6488110c88>, <tensorflow.python.keras.layers.core.Activation at 0x7f6488119048>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6488119358>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c785ac8>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c785a90>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c785e10>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c7b3da0>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c73ad30>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c73a080>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c7659b0>, <tensorflow.python.keras.layers.merge.Add at 0x7f647c765978>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c765dd8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c71af98>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c71af60>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c6d0320>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c6c8710>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c6f3f60>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c6f3f28>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c765da0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c57b278>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c715cf8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c5a86d8>, <tensorflow.python.keras.layers.merge.Add at 0x7f647c5a86a0>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c5a8a20>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c5a8ac8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c555da0>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c55dcc0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c55d208>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c50b940>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c50b908>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c50bc88>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c535c88>, <tensorflow.python.keras.layers.merge.Add at 0x7f647c537b70>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c5370f0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c537400>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c4e8b70>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c4e8b38>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c4e8dd8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c3d4e48>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c3dddd8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c3dd128>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c30ca58>, <tensorflow.python.keras.layers.merge.Add at 0x7f647c30ca20>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c30ce80>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c30ce48>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c338da0>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c2bd518>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c2bd7f0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c2ebcc0>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c2ebc88>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c2eb978>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c294eb8>, <tensorflow.python.keras.layers.merge.Add at 0x7f647c29fef0>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c29f0f0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c29f780>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c14aef0>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c14aeb8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c1545c0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c0bf6a0>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c0bf668>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c0bf9e8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c0ecdd8>, <tensorflow.python.keras.layers.merge.Add at 0x7f647c0ecda0>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c0f30b8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c0f3160>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c0a28d0>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c0a2898>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c0a2b70>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c04cc50>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c04db38>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c04d0b8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64306c27b8>, <tensorflow.python.keras.layers.merge.Add at 0x7f64306c2780>, <tensorflow.python.keras.layers.core.Activation at 0x7f64306c2b00>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64306f7da0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64306f7d68>, <tensorflow.python.keras.layers.core.Activation at 0x7f6430628128>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6430620518>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64305ced68>, <tensorflow.python.keras.layers.core.Activation at 0x7f64305ced30>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64306c2ba8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64305cea20>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64306ecbe0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64305f6f60>, <tensorflow.python.keras.layers.merge.Add at 0x7f6430583f98>, <tensorflow.python.keras.layers.core.Activation at 0x7f6430583198>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6430583828>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64305b0f98>, <tensorflow.python.keras.layers.core.Activation at 0x7f64305b0f60>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64305b8668>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6430564748>, <tensorflow.python.keras.layers.core.Activation at 0x7f6430564710>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6430564a90>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f643044ee80>, <tensorflow.python.keras.layers.merge.Add at 0x7f643044ee48>, <tensorflow.python.keras.layers.core.Activation at 0x7f643045a160>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f643045a208>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64303c1978>, <tensorflow.python.keras.layers.core.Activation at 0x7f64303c1940>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64303c1cc0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64303f0cf8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6430379be0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6430379160>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64303a3860>, <tensorflow.python.keras.layers.merge.Add at 0x7f64303a3828>, <tensorflow.python.keras.layers.core.Activation at 0x7f64303a3ba8>, <tensorflow.python.keras.layers.pooling.GlobalAveragePooling2D at 0x7f643035ae80>, <tensorflow.python.keras.layers.core.Dense at 0x7f647c3591d0>, <tensorflow.python.keras.layers.core.Dropout at 0x7f6430318080>, <tensorflow.python.keras.layers.core.Dense at 0x7f643032bf60>, <tensorflow.python.keras.layers.core.Dropout at 0x7f643032bf98>, <tensorflow.python.keras.layers.core.Dense at 0x7f643031a710>, <tensorflow.python.keras.layers.core.Dense at 0x7f6430337d68>]
# Visualize the structure and layers of the model
print(model.summary())
Model: "model_82"
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
input_3 (InputLayer) [(None, 512, 512, 3) 0
__________________________________________________________________________________________________
conv1_pad (ZeroPadding2D) (None, 518, 518, 3) 0 input_3[0][0]
__________________________________________________________________________________________________
conv1_conv (Conv2D) (None, 256, 256, 64) 9472 conv1_pad[0][0]
__________________________________________________________________________________________________
conv1_bn (BatchNormalization) (None, 256, 256, 64) 256 conv1_conv[0][0]
__________________________________________________________________________________________________
conv1_relu (Activation) (None, 256, 256, 64) 0 conv1_bn[0][0]
__________________________________________________________________________________________________
pool1_pad (ZeroPadding2D) (None, 258, 258, 64) 0 conv1_relu[0][0]
__________________________________________________________________________________________________
pool1_pool (MaxPooling2D) (None, 128, 128, 64) 0 pool1_pad[0][0]
__________________________________________________________________________________________________
conv2_block1_1_conv (Conv2D) (None, 128, 128, 64) 4160 pool1_pool[0][0]
__________________________________________________________________________________________________
conv2_block1_1_bn (BatchNormali (None, 128, 128, 64) 256 conv2_block1_1_conv[0][0]
__________________________________________________________________________________________________
conv2_block1_1_relu (Activation (None, 128, 128, 64) 0 conv2_block1_1_bn[0][0]
__________________________________________________________________________________________________
conv2_block1_2_conv (Conv2D) (None, 128, 128, 64) 36928 conv2_block1_1_relu[0][0]
__________________________________________________________________________________________________
conv2_block1_2_bn (BatchNormali (None, 128, 128, 64) 256 conv2_block1_2_conv[0][0]
__________________________________________________________________________________________________
conv2_block1_2_relu (Activation (None, 128, 128, 64) 0 conv2_block1_2_bn[0][0]
__________________________________________________________________________________________________
conv2_block1_0_conv (Conv2D) (None, 128, 128, 256 16640 pool1_pool[0][0]
__________________________________________________________________________________________________
conv2_block1_3_conv (Conv2D) (None, 128, 128, 256 16640 conv2_block1_2_relu[0][0]
__________________________________________________________________________________________________
conv2_block1_0_bn (BatchNormali (None, 128, 128, 256 1024 conv2_block1_0_conv[0][0]
__________________________________________________________________________________________________
conv2_block1_3_bn (BatchNormali (None, 128, 128, 256 1024 conv2_block1_3_conv[0][0]
__________________________________________________________________________________________________
conv2_block1_add (Add) (None, 128, 128, 256 0 conv2_block1_0_bn[0][0]
conv2_block1_3_bn[0][0]
__________________________________________________________________________________________________
conv2_block1_out (Activation) (None, 128, 128, 256 0 conv2_block1_add[0][0]
__________________________________________________________________________________________________
conv2_block2_1_conv (Conv2D) (None, 128, 128, 64) 16448 conv2_block1_out[0][0]
__________________________________________________________________________________________________
conv2_block2_1_bn (BatchNormali (None, 128, 128, 64) 256 conv2_block2_1_conv[0][0]
__________________________________________________________________________________________________
conv2_block2_1_relu (Activation (None, 128, 128, 64) 0 conv2_block2_1_bn[0][0]
__________________________________________________________________________________________________
conv2_block2_2_conv (Conv2D) (None, 128, 128, 64) 36928 conv2_block2_1_relu[0][0]
__________________________________________________________________________________________________
conv2_block2_2_bn (BatchNormali (None, 128, 128, 64) 256 conv2_block2_2_conv[0][0]
__________________________________________________________________________________________________
conv2_block2_2_relu (Activation (None, 128, 128, 64) 0 conv2_block2_2_bn[0][0]
__________________________________________________________________________________________________
conv2_block2_3_conv (Conv2D) (None, 128, 128, 256 16640 conv2_block2_2_relu[0][0]
__________________________________________________________________________________________________
conv2_block2_3_bn (BatchNormali (None, 128, 128, 256 1024 conv2_block2_3_conv[0][0]
__________________________________________________________________________________________________
conv2_block2_add (Add) (None, 128, 128, 256 0 conv2_block1_out[0][0]
conv2_block2_3_bn[0][0]
__________________________________________________________________________________________________
conv2_block2_out (Activation) (None, 128, 128, 256 0 conv2_block2_add[0][0]
__________________________________________________________________________________________________
conv2_block3_1_conv (Conv2D) (None, 128, 128, 64) 16448 conv2_block2_out[0][0]
__________________________________________________________________________________________________
conv2_block3_1_bn (BatchNormali (None, 128, 128, 64) 256 conv2_block3_1_conv[0][0]
__________________________________________________________________________________________________
conv2_block3_1_relu (Activation (None, 128, 128, 64) 0 conv2_block3_1_bn[0][0]
__________________________________________________________________________________________________
conv2_block3_2_conv (Conv2D) (None, 128, 128, 64) 36928 conv2_block3_1_relu[0][0]
__________________________________________________________________________________________________
conv2_block3_2_bn (BatchNormali (None, 128, 128, 64) 256 conv2_block3_2_conv[0][0]
__________________________________________________________________________________________________
conv2_block3_2_relu (Activation (None, 128, 128, 64) 0 conv2_block3_2_bn[0][0]
__________________________________________________________________________________________________
conv2_block3_3_conv (Conv2D) (None, 128, 128, 256 16640 conv2_block3_2_relu[0][0]
__________________________________________________________________________________________________
conv2_block3_3_bn (BatchNormali (None, 128, 128, 256 1024 conv2_block3_3_conv[0][0]
__________________________________________________________________________________________________
conv2_block3_add (Add) (None, 128, 128, 256 0 conv2_block2_out[0][0]
conv2_block3_3_bn[0][0]
__________________________________________________________________________________________________
conv2_block3_out (Activation) (None, 128, 128, 256 0 conv2_block3_add[0][0]
__________________________________________________________________________________________________
conv3_block1_1_conv (Conv2D) (None, 64, 64, 128) 32896 conv2_block3_out[0][0]
__________________________________________________________________________________________________
conv3_block1_1_bn (BatchNormali (None, 64, 64, 128) 512 conv3_block1_1_conv[0][0]
__________________________________________________________________________________________________
conv3_block1_1_relu (Activation (None, 64, 64, 128) 0 conv3_block1_1_bn[0][0]
__________________________________________________________________________________________________
conv3_block1_2_conv (Conv2D) (None, 64, 64, 128) 147584 conv3_block1_1_relu[0][0]
__________________________________________________________________________________________________
conv3_block1_2_bn (BatchNormali (None, 64, 64, 128) 512 conv3_block1_2_conv[0][0]
__________________________________________________________________________________________________
conv3_block1_2_relu (Activation (None, 64, 64, 128) 0 conv3_block1_2_bn[0][0]
__________________________________________________________________________________________________
conv3_block1_0_conv (Conv2D) (None, 64, 64, 512) 131584 conv2_block3_out[0][0]
__________________________________________________________________________________________________
conv3_block1_3_conv (Conv2D) (None, 64, 64, 512) 66048 conv3_block1_2_relu[0][0]
__________________________________________________________________________________________________
conv3_block1_0_bn (BatchNormali (None, 64, 64, 512) 2048 conv3_block1_0_conv[0][0]
__________________________________________________________________________________________________
conv3_block1_3_bn (BatchNormali (None, 64, 64, 512) 2048 conv3_block1_3_conv[0][0]
__________________________________________________________________________________________________
conv3_block1_add (Add) (None, 64, 64, 512) 0 conv3_block1_0_bn[0][0]
conv3_block1_3_bn[0][0]
__________________________________________________________________________________________________
conv3_block1_out (Activation) (None, 64, 64, 512) 0 conv3_block1_add[0][0]
__________________________________________________________________________________________________
conv3_block2_1_conv (Conv2D) (None, 64, 64, 128) 65664 conv3_block1_out[0][0]
__________________________________________________________________________________________________
conv3_block2_1_bn (BatchNormali (None, 64, 64, 128) 512 conv3_block2_1_conv[0][0]
__________________________________________________________________________________________________
conv3_block2_1_relu (Activation (None, 64, 64, 128) 0 conv3_block2_1_bn[0][0]
__________________________________________________________________________________________________
conv3_block2_2_conv (Conv2D) (None, 64, 64, 128) 147584 conv3_block2_1_relu[0][0]
__________________________________________________________________________________________________
conv3_block2_2_bn (BatchNormali (None, 64, 64, 128) 512 conv3_block2_2_conv[0][0]
__________________________________________________________________________________________________
conv3_block2_2_relu (Activation (None, 64, 64, 128) 0 conv3_block2_2_bn[0][0]
__________________________________________________________________________________________________
conv3_block2_3_conv (Conv2D) (None, 64, 64, 512) 66048 conv3_block2_2_relu[0][0]
__________________________________________________________________________________________________
conv3_block2_3_bn (BatchNormali (None, 64, 64, 512) 2048 conv3_block2_3_conv[0][0]
__________________________________________________________________________________________________
conv3_block2_add (Add) (None, 64, 64, 512) 0 conv3_block1_out[0][0]
conv3_block2_3_bn[0][0]
__________________________________________________________________________________________________
conv3_block2_out (Activation) (None, 64, 64, 512) 0 conv3_block2_add[0][0]
__________________________________________________________________________________________________
conv3_block3_1_conv (Conv2D) (None, 64, 64, 128) 65664 conv3_block2_out[0][0]
__________________________________________________________________________________________________
conv3_block3_1_bn (BatchNormali (None, 64, 64, 128) 512 conv3_block3_1_conv[0][0]
__________________________________________________________________________________________________
conv3_block3_1_relu (Activation (None, 64, 64, 128) 0 conv3_block3_1_bn[0][0]
__________________________________________________________________________________________________
conv3_block3_2_conv (Conv2D) (None, 64, 64, 128) 147584 conv3_block3_1_relu[0][0]
__________________________________________________________________________________________________
conv3_block3_2_bn (BatchNormali (None, 64, 64, 128) 512 conv3_block3_2_conv[0][0]
__________________________________________________________________________________________________
conv3_block3_2_relu (Activation (None, 64, 64, 128) 0 conv3_block3_2_bn[0][0]
__________________________________________________________________________________________________
conv3_block3_3_conv (Conv2D) (None, 64, 64, 512) 66048 conv3_block3_2_relu[0][0]
__________________________________________________________________________________________________
conv3_block3_3_bn (BatchNormali (None, 64, 64, 512) 2048 conv3_block3_3_conv[0][0]
__________________________________________________________________________________________________
conv3_block3_add (Add) (None, 64, 64, 512) 0 conv3_block2_out[0][0]
conv3_block3_3_bn[0][0]
__________________________________________________________________________________________________
conv3_block3_out (Activation) (None, 64, 64, 512) 0 conv3_block3_add[0][0]
__________________________________________________________________________________________________
conv3_block4_1_conv (Conv2D) (None, 64, 64, 128) 65664 conv3_block3_out[0][0]
__________________________________________________________________________________________________
conv3_block4_1_bn (BatchNormali (None, 64, 64, 128) 512 conv3_block4_1_conv[0][0]
__________________________________________________________________________________________________
conv3_block4_1_relu (Activation (None, 64, 64, 128) 0 conv3_block4_1_bn[0][0]
__________________________________________________________________________________________________
conv3_block4_2_conv (Conv2D) (None, 64, 64, 128) 147584 conv3_block4_1_relu[0][0]
__________________________________________________________________________________________________
conv3_block4_2_bn (BatchNormali (None, 64, 64, 128) 512 conv3_block4_2_conv[0][0]
__________________________________________________________________________________________________
conv3_block4_2_relu (Activation (None, 64, 64, 128) 0 conv3_block4_2_bn[0][0]
__________________________________________________________________________________________________
conv3_block4_3_conv (Conv2D) (None, 64, 64, 512) 66048 conv3_block4_2_relu[0][0]
__________________________________________________________________________________________________
conv3_block4_3_bn (BatchNormali (None, 64, 64, 512) 2048 conv3_block4_3_conv[0][0]
__________________________________________________________________________________________________
conv3_block4_add (Add) (None, 64, 64, 512) 0 conv3_block3_out[0][0]
conv3_block4_3_bn[0][0]
__________________________________________________________________________________________________
conv3_block4_out (Activation) (None, 64, 64, 512) 0 conv3_block4_add[0][0]
__________________________________________________________________________________________________
conv4_block1_1_conv (Conv2D) (None, 32, 32, 256) 131328 conv3_block4_out[0][0]
__________________________________________________________________________________________________
conv4_block1_1_bn (BatchNormali (None, 32, 32, 256) 1024 conv4_block1_1_conv[0][0]
__________________________________________________________________________________________________
conv4_block1_1_relu (Activation (None, 32, 32, 256) 0 conv4_block1_1_bn[0][0]
__________________________________________________________________________________________________
conv4_block1_2_conv (Conv2D) (None, 32, 32, 256) 590080 conv4_block1_1_relu[0][0]
__________________________________________________________________________________________________
conv4_block1_2_bn (BatchNormali (None, 32, 32, 256) 1024 conv4_block1_2_conv[0][0]
__________________________________________________________________________________________________
conv4_block1_2_relu (Activation (None, 32, 32, 256) 0 conv4_block1_2_bn[0][0]
__________________________________________________________________________________________________
conv4_block1_0_conv (Conv2D) (None, 32, 32, 1024) 525312 conv3_block4_out[0][0]
__________________________________________________________________________________________________
conv4_block1_3_conv (Conv2D) (None, 32, 32, 1024) 263168 conv4_block1_2_relu[0][0]
__________________________________________________________________________________________________
conv4_block1_0_bn (BatchNormali (None, 32, 32, 1024) 4096 conv4_block1_0_conv[0][0]
__________________________________________________________________________________________________
conv4_block1_3_bn (BatchNormali (None, 32, 32, 1024) 4096 conv4_block1_3_conv[0][0]
__________________________________________________________________________________________________
conv4_block1_add (Add) (None, 32, 32, 1024) 0 conv4_block1_0_bn[0][0]
conv4_block1_3_bn[0][0]
__________________________________________________________________________________________________
conv4_block1_out (Activation) (None, 32, 32, 1024) 0 conv4_block1_add[0][0]
__________________________________________________________________________________________________
conv4_block2_1_conv (Conv2D) (None, 32, 32, 256) 262400 conv4_block1_out[0][0]
__________________________________________________________________________________________________
conv4_block2_1_bn (BatchNormali (None, 32, 32, 256) 1024 conv4_block2_1_conv[0][0]
__________________________________________________________________________________________________
conv4_block2_1_relu (Activation (None, 32, 32, 256) 0 conv4_block2_1_bn[0][0]
__________________________________________________________________________________________________
conv4_block2_2_conv (Conv2D) (None, 32, 32, 256) 590080 conv4_block2_1_relu[0][0]
__________________________________________________________________________________________________
conv4_block2_2_bn (BatchNormali (None, 32, 32, 256) 1024 conv4_block2_2_conv[0][0]
__________________________________________________________________________________________________
conv4_block2_2_relu (Activation (None, 32, 32, 256) 0 conv4_block2_2_bn[0][0]
__________________________________________________________________________________________________
conv4_block2_3_conv (Conv2D) (None, 32, 32, 1024) 263168 conv4_block2_2_relu[0][0]
__________________________________________________________________________________________________
conv4_block2_3_bn (BatchNormali (None, 32, 32, 1024) 4096 conv4_block2_3_conv[0][0]
__________________________________________________________________________________________________
conv4_block2_add (Add) (None, 32, 32, 1024) 0 conv4_block1_out[0][0]
conv4_block2_3_bn[0][0]
__________________________________________________________________________________________________
conv4_block2_out (Activation) (None, 32, 32, 1024) 0 conv4_block2_add[0][0]
__________________________________________________________________________________________________
conv4_block3_1_conv (Conv2D) (None, 32, 32, 256) 262400 conv4_block2_out[0][0]
__________________________________________________________________________________________________
conv4_block3_1_bn (BatchNormali (None, 32, 32, 256) 1024 conv4_block3_1_conv[0][0]
__________________________________________________________________________________________________
conv4_block3_1_relu (Activation (None, 32, 32, 256) 0 conv4_block3_1_bn[0][0]
__________________________________________________________________________________________________
conv4_block3_2_conv (Conv2D) (None, 32, 32, 256) 590080 conv4_block3_1_relu[0][0]
__________________________________________________________________________________________________
conv4_block3_2_bn (BatchNormali (None, 32, 32, 256) 1024 conv4_block3_2_conv[0][0]
__________________________________________________________________________________________________
conv4_block3_2_relu (Activation (None, 32, 32, 256) 0 conv4_block3_2_bn[0][0]
__________________________________________________________________________________________________
conv4_block3_3_conv (Conv2D) (None, 32, 32, 1024) 263168 conv4_block3_2_relu[0][0]
__________________________________________________________________________________________________
conv4_block3_3_bn (BatchNormali (None, 32, 32, 1024) 4096 conv4_block3_3_conv[0][0]
__________________________________________________________________________________________________
conv4_block3_add (Add) (None, 32, 32, 1024) 0 conv4_block2_out[0][0]
conv4_block3_3_bn[0][0]
__________________________________________________________________________________________________
conv4_block3_out (Activation) (None, 32, 32, 1024) 0 conv4_block3_add[0][0]
__________________________________________________________________________________________________
conv4_block4_1_conv (Conv2D) (None, 32, 32, 256) 262400 conv4_block3_out[0][0]
__________________________________________________________________________________________________
conv4_block4_1_bn (BatchNormali (None, 32, 32, 256) 1024 conv4_block4_1_conv[0][0]
__________________________________________________________________________________________________
conv4_block4_1_relu (Activation (None, 32, 32, 256) 0 conv4_block4_1_bn[0][0]
__________________________________________________________________________________________________
conv4_block4_2_conv (Conv2D) (None, 32, 32, 256) 590080 conv4_block4_1_relu[0][0]
__________________________________________________________________________________________________
conv4_block4_2_bn (BatchNormali (None, 32, 32, 256) 1024 conv4_block4_2_conv[0][0]
__________________________________________________________________________________________________
conv4_block4_2_relu (Activation (None, 32, 32, 256) 0 conv4_block4_2_bn[0][0]
__________________________________________________________________________________________________
conv4_block4_3_conv (Conv2D) (None, 32, 32, 1024) 263168 conv4_block4_2_relu[0][0]
__________________________________________________________________________________________________
conv4_block4_3_bn (BatchNormali (None, 32, 32, 1024) 4096 conv4_block4_3_conv[0][0]
__________________________________________________________________________________________________
conv4_block4_add (Add) (None, 32, 32, 1024) 0 conv4_block3_out[0][0]
conv4_block4_3_bn[0][0]
__________________________________________________________________________________________________
conv4_block4_out (Activation) (None, 32, 32, 1024) 0 conv4_block4_add[0][0]
__________________________________________________________________________________________________
conv4_block5_1_conv (Conv2D) (None, 32, 32, 256) 262400 conv4_block4_out[0][0]
__________________________________________________________________________________________________
conv4_block5_1_bn (BatchNormali (None, 32, 32, 256) 1024 conv4_block5_1_conv[0][0]
__________________________________________________________________________________________________
conv4_block5_1_relu (Activation (None, 32, 32, 256) 0 conv4_block5_1_bn[0][0]
__________________________________________________________________________________________________
conv4_block5_2_conv (Conv2D) (None, 32, 32, 256) 590080 conv4_block5_1_relu[0][0]
__________________________________________________________________________________________________
conv4_block5_2_bn (BatchNormali (None, 32, 32, 256) 1024 conv4_block5_2_conv[0][0]
__________________________________________________________________________________________________
conv4_block5_2_relu (Activation (None, 32, 32, 256) 0 conv4_block5_2_bn[0][0]
__________________________________________________________________________________________________
conv4_block5_3_conv (Conv2D) (None, 32, 32, 1024) 263168 conv4_block5_2_relu[0][0]
__________________________________________________________________________________________________
conv4_block5_3_bn (BatchNormali (None, 32, 32, 1024) 4096 conv4_block5_3_conv[0][0]
__________________________________________________________________________________________________
conv4_block5_add (Add) (None, 32, 32, 1024) 0 conv4_block4_out[0][0]
conv4_block5_3_bn[0][0]
__________________________________________________________________________________________________
conv4_block5_out (Activation) (None, 32, 32, 1024) 0 conv4_block5_add[0][0]
__________________________________________________________________________________________________
conv4_block6_1_conv (Conv2D) (None, 32, 32, 256) 262400 conv4_block5_out[0][0]
__________________________________________________________________________________________________
conv4_block6_1_bn (BatchNormali (None, 32, 32, 256) 1024 conv4_block6_1_conv[0][0]
__________________________________________________________________________________________________
conv4_block6_1_relu (Activation (None, 32, 32, 256) 0 conv4_block6_1_bn[0][0]
__________________________________________________________________________________________________
conv4_block6_2_conv (Conv2D) (None, 32, 32, 256) 590080 conv4_block6_1_relu[0][0]
__________________________________________________________________________________________________
conv4_block6_2_bn (BatchNormali (None, 32, 32, 256) 1024 conv4_block6_2_conv[0][0]
__________________________________________________________________________________________________
conv4_block6_2_relu (Activation (None, 32, 32, 256) 0 conv4_block6_2_bn[0][0]
__________________________________________________________________________________________________
conv4_block6_3_conv (Conv2D) (None, 32, 32, 1024) 263168 conv4_block6_2_relu[0][0]
__________________________________________________________________________________________________
conv4_block6_3_bn (BatchNormali (None, 32, 32, 1024) 4096 conv4_block6_3_conv[0][0]
__________________________________________________________________________________________________
conv4_block6_add (Add) (None, 32, 32, 1024) 0 conv4_block5_out[0][0]
conv4_block6_3_bn[0][0]
__________________________________________________________________________________________________
conv4_block6_out (Activation) (None, 32, 32, 1024) 0 conv4_block6_add[0][0]
__________________________________________________________________________________________________
conv5_block1_1_conv (Conv2D) (None, 16, 16, 512) 524800 conv4_block6_out[0][0]
__________________________________________________________________________________________________
conv5_block1_1_bn (BatchNormali (None, 16, 16, 512) 2048 conv5_block1_1_conv[0][0]
__________________________________________________________________________________________________
conv5_block1_1_relu (Activation (None, 16, 16, 512) 0 conv5_block1_1_bn[0][0]
__________________________________________________________________________________________________
conv5_block1_2_conv (Conv2D) (None, 16, 16, 512) 2359808 conv5_block1_1_relu[0][0]
__________________________________________________________________________________________________
conv5_block1_2_bn (BatchNormali (None, 16, 16, 512) 2048 conv5_block1_2_conv[0][0]
__________________________________________________________________________________________________
conv5_block1_2_relu (Activation (None, 16, 16, 512) 0 conv5_block1_2_bn[0][0]
__________________________________________________________________________________________________
conv5_block1_0_conv (Conv2D) (None, 16, 16, 2048) 2099200 conv4_block6_out[0][0]
__________________________________________________________________________________________________
conv5_block1_3_conv (Conv2D) (None, 16, 16, 2048) 1050624 conv5_block1_2_relu[0][0]
__________________________________________________________________________________________________
conv5_block1_0_bn (BatchNormali (None, 16, 16, 2048) 8192 conv5_block1_0_conv[0][0]
__________________________________________________________________________________________________
conv5_block1_3_bn (BatchNormali (None, 16, 16, 2048) 8192 conv5_block1_3_conv[0][0]
__________________________________________________________________________________________________
conv5_block1_add (Add) (None, 16, 16, 2048) 0 conv5_block1_0_bn[0][0]
conv5_block1_3_bn[0][0]
__________________________________________________________________________________________________
conv5_block1_out (Activation) (None, 16, 16, 2048) 0 conv5_block1_add[0][0]
__________________________________________________________________________________________________
conv5_block2_1_conv (Conv2D) (None, 16, 16, 512) 1049088 conv5_block1_out[0][0]
__________________________________________________________________________________________________
conv5_block2_1_bn (BatchNormali (None, 16, 16, 512) 2048 conv5_block2_1_conv[0][0]
__________________________________________________________________________________________________
conv5_block2_1_relu (Activation (None, 16, 16, 512) 0 conv5_block2_1_bn[0][0]
__________________________________________________________________________________________________
conv5_block2_2_conv (Conv2D) (None, 16, 16, 512) 2359808 conv5_block2_1_relu[0][0]
__________________________________________________________________________________________________
conv5_block2_2_bn (BatchNormali (None, 16, 16, 512) 2048 conv5_block2_2_conv[0][0]
__________________________________________________________________________________________________
conv5_block2_2_relu (Activation (None, 16, 16, 512) 0 conv5_block2_2_bn[0][0]
__________________________________________________________________________________________________
conv5_block2_3_conv (Conv2D) (None, 16, 16, 2048) 1050624 conv5_block2_2_relu[0][0]
__________________________________________________________________________________________________
conv5_block2_3_bn (BatchNormali (None, 16, 16, 2048) 8192 conv5_block2_3_conv[0][0]
__________________________________________________________________________________________________
conv5_block2_add (Add) (None, 16, 16, 2048) 0 conv5_block1_out[0][0]
conv5_block2_3_bn[0][0]
__________________________________________________________________________________________________
conv5_block2_out (Activation) (None, 16, 16, 2048) 0 conv5_block2_add[0][0]
__________________________________________________________________________________________________
conv5_block3_1_conv (Conv2D) (None, 16, 16, 512) 1049088 conv5_block2_out[0][0]
__________________________________________________________________________________________________
conv5_block3_1_bn (BatchNormali (None, 16, 16, 512) 2048 conv5_block3_1_conv[0][0]
__________________________________________________________________________________________________
conv5_block3_1_relu (Activation (None, 16, 16, 512) 0 conv5_block3_1_bn[0][0]
__________________________________________________________________________________________________
conv5_block3_2_conv (Conv2D) (None, 16, 16, 512) 2359808 conv5_block3_1_relu[0][0]
__________________________________________________________________________________________________
conv5_block3_2_bn (BatchNormali (None, 16, 16, 512) 2048 conv5_block3_2_conv[0][0]
__________________________________________________________________________________________________
conv5_block3_2_relu (Activation (None, 16, 16, 512) 0 conv5_block3_2_bn[0][0]
__________________________________________________________________________________________________
conv5_block3_3_conv (Conv2D) (None, 16, 16, 2048) 1050624 conv5_block3_2_relu[0][0]
__________________________________________________________________________________________________
conv5_block3_3_bn (BatchNormali (None, 16, 16, 2048) 8192 conv5_block3_3_conv[0][0]
__________________________________________________________________________________________________
conv5_block3_add (Add) (None, 16, 16, 2048) 0 conv5_block2_out[0][0]
conv5_block3_3_bn[0][0]
__________________________________________________________________________________________________
conv5_block3_out (Activation) (None, 16, 16, 2048) 0 conv5_block3_add[0][0]
__________________________________________________________________________________________________
global_average_pooling2d_2 (Glo (None, 2048) 0 conv5_block3_out[0][0]
__________________________________________________________________________________________________
dense_8 (Dense) (None, 516) 1057284 global_average_pooling2d_2[0][0]
__________________________________________________________________________________________________
dropout_4 (Dropout) (None, 516) 0 dense_8[0][0]
__________________________________________________________________________________________________
dense_9 (Dense) (None, 256) 132352 dropout_4[0][0]
__________________________________________________________________________________________________
dropout_5 (Dropout) (None, 256) 0 dense_9[0][0]
__________________________________________________________________________________________________
dense_10 (Dense) (None, 64) 16448 dropout_5[0][0]
__________________________________________________________________________________________________
dense_11 (Dense) (None, 2) 130 dense_10[0][0]
==================================================================================================
Total params: 24,793,926
Trainable params: 10,137,542
Non-trainable params: 14,656,384
__________________________________________________________________________________________________
None
# Define modifier to replace the sigmoid function of the last layer to a linear function
def model_modifier(m):
m.layers[-1].activation = tf.keras.activations.linear
# Define losses functions. 0 is the index for a normal MRI
loss_normal = lambda output: K.mean(output[:, 0])
# Define losses functions. 1 is the index for a diffuse malformation of cortical development MRI
loss_diffuseMCD = lambda output: K.mean(output[:, 1])
# Create Gradcam object
gradcam = Gradcam(model, model_modifier)
# Create Saliency object
saliency = Saliency(model, model_modifier)
# Iterate through the MRIs in test set
# Set background to white color
plt.rcParams['axes.facecolor']='white'
plt.rcParams['figure.facecolor']='white'
plt.rcParams['figure.edgecolor']='white'
print('\n \n' + '\033[1m' + 'EACH ORIGINAL MRI IS ANALYZED WITH TWO METHODS: CLASS ACTIVATION MAP (UPPER ROW) AND SALIENCY MAP (LOWER ROW)' + '\033[0m' + '\n')
print('\033[1m' + 'EACH MAP IS SUPERIMPOSED ON THE ORIGINAL MRI WITH A TRANSPARENCY THAT IS INVERSELY PROPORTIONAL TO THE ESTIMATED PROBABILITY OF THE MRI BELONGING TO THAT CATEGORY (NORMAL MRI, DIFFUSE CORTICAL MALFORMATION) \n \nHIGHER ESTIMATED PROBABILITIES PRODUCE CLEARLY SEEN MAPS OVERLAID ON THE ORIGINAL MRI AND LOWER ESTIMATED PROBABILITIES PRODUCE VERY TRANSPARENT OR NOT APPRECIABLE MAPS OVERLAID ON THE ORIGINAL MRI' + '\033[0m'+ '\n')
for i in range(20):
# Print spaces to separate from the next image
print('\n \n \n \n \n \n')
# Print real classification of the image
if y_true[i]==0:
real_classification='Normal MRI'
elif y_true[i]==1:
real_classification='Diffuse MCD'
print('\033[1m' + 'REAL CLASSIFICATION OF THE IMAGE: {}'.format(real_classification) + '\033[0m')
# Print model classification and model probability of MCD
if y_predResNet50[i]==0:
predicted_classification='Normal MRI'
elif y_predResNet50[i]==1:
predicted_classification='Diffuse MCD'
print('\033[1m' + 'MODEL CLASSIFICATION OF THE IMAGE: {}'.format(predicted_classification) + '\033[0m \n')
print('\033[1m' + ' Prob. Normal MRI: {:.4f} '.format(valResNet50[i][0]) + 'Prob. Diffuse MCD: {:.4f} '.format(valResNet50[i][1]) + '\033[0m')
# Arrays to plot
original_image=shuffled_val_X[i]
list_heatmaps=[
# GradCam heatmap for normal MRI
normalize(gradcam(loss_normal, shuffled_val_X[i])),
# GradCam heatmap for diffuse MCD
normalize(gradcam(loss_diffuseMCD, shuffled_val_X[i])),
# Saliency heatmap for normal MRI
normalize(saliency(loss_normal, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2)),
# Saliency heatmap for diffuse MCD
normalize(saliency(loss_diffuseMCD, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2))
]
# Define figure
f=plt.figure(figsize=(20, 8))
# Define the image grid
grid = ImageGrid(f, 111,
nrows_ncols=(2, 2),
axes_pad=0.05,
share_all=True,
cbar_location="right",
cbar_mode=None,
cbar_size="2%",
cbar_pad=0.15)
# Iterate over the graphs
for j, axis in enumerate(grid):
# Plot original
im=axis.imshow(original_image)
im=axis.imshow(list_heatmaps[j][0], cmap='jet', alpha=0.5*valResNet50[i][j%2])
im=axis.set_xticks([])
im=axis.set_yticks([])
# Create scalarmappable for obtaining the colorbar from 0 to 1
sm = plt.cm.ScalarMappable(cmap='jet', norm=plt.Normalize(vmin=0, vmax=1))
plt.colorbar(sm)
plt.show()
EACH ORIGINAL MRI IS ANALYZED WITH TWO METHODS: CLASS ACTIVATION MAP (UPPER ROW) AND SALIENCY MAP (LOWER ROW) EACH MAP IS SUPERIMPOSED ON THE ORIGINAL MRI WITH A TRANSPARENCY THAT IS INVERSELY PROPORTIONAL TO THE ESTIMATED PROBABILITY OF THE MRI BELONGING TO THAT CATEGORY (NORMAL MRI, DIFFUSE CORTICAL MALFORMATION) HIGHER ESTIMATED PROBABILITIES PRODUCE CLEARLY SEEN MAPS OVERLAID ON THE ORIGINAL MRI AND LOWER ESTIMATED PROBABILITIES PRODUCE VERY TRANSPARENT OR NOT APPRECIABLE MAPS OVERLAID ON THE ORIGINAL MRI REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0128 Prob. Diffuse MCD: 0.9872
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9835 Prob. Diffuse MCD: 0.0165
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.7811 Prob. Diffuse MCD: 0.2189
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9907 Prob. Diffuse MCD: 0.0093
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9983 Prob. Diffuse MCD: 0.0017
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.7563 Prob. Diffuse MCD: 0.2437
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.7457 Prob. Diffuse MCD: 0.2543
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9896 Prob. Diffuse MCD: 0.0104
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9260 Prob. Diffuse MCD: 0.0740
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0395 Prob. Diffuse MCD: 0.9605
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9679 Prob. Diffuse MCD: 0.0321
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9997 Prob. Diffuse MCD: 0.0003
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.6134 Prob. Diffuse MCD: 0.3866
# Use InceptionResNetV2 as the base model
base_model = tf.keras.applications.inception_resnet_v2.InceptionResNetV2(layers=tf.keras.layers, weights='imagenet', include_top = False, input_shape=train_X.shape[1:])
# Get the output of the base model
x = base_model.output
# Add a 2D global average pooling layer
x = GlobalAveragePooling2D()(x)
## Add the fully-connected layers
x = Dense(units=516, activation='relu')(x)
x = Dropout(rate=0.5)(x)
x = Dense(units=256, activation='relu')(x)
x = Dropout(rate=0.5)(x)
x = Dense(units=64, activation='relu')(x)
# Ad a layer for multiclass classification
predictions = Dense(units = 2, activation = 'softmax')(x)
# Define the model to be trained
model = Model(inputs = base_model.input, outputs = predictions)
# Train the last 75 layers in the base model
for layer in base_model.layers[:-75]:
layer.trainable = False
for layer in base_model.layers[-75:]:
layer.trainable = True
# Compile the model
opt = Adam(lr = 0.0001)
model.compile(optimizer = opt, loss = 'categorical_crossentropy', metrics = ['accuracy'])
# Fit and test the model in the validation set
historyResNet50 = model.fit(shuffled_train_X, shuffled_train_y, validation_data = [shuffled_val_X, shuffled_val_y], epochs = 50, batch_size = 32)
print('\n')
print('\n')
# AUC in train and validation set
auc_trainResNet50 = roc_auc_score(shuffled_train_y, model.predict(shuffled_train_X))
print('The AUC in the train set is {:.4f}.'.format(auc_trainResNet50))
print('\n')
print('\n')
auc_validResNet50 = roc_auc_score(shuffled_val_y, model.predict(shuffled_val_X))
print('The AUC in the validation set is {:.4f}.'.format(auc_validResNet50))
print('\n')
print('\n')
print('\n')
print('\n')
# Figure size and colors
mpl.rcParams['figure.figsize'] = (20,24)
plt.rcParams['axes.facecolor']='white'
plt.rcParams['figure.facecolor']='lightgreen'
plt.rcParams['figure.edgecolor']='black'
# Plot history of loss during training
plt.plot(historyResNet50.history['loss'], label='Train', color='red')
plt.plot(historyResNet50.history['val_loss'], label='Validation', color='blue')
plt.title('Loss in train and validation set', size=30)
plt.xlabel('Epoch', size=24)
plt.ylabel('Categorical cross-entropy loss', size=24)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.legend(fontsize=20)
plt.ylim(ymin=0, ymax=5)
plt.grid(b=None)
plt.show()
print('\n')
print('\n')
print('\n')
print('\n')
# Plot history of accuracy
plt.plot(historyResNet50.history['accuracy'], label='Train', color='red')
plt.plot(historyResNet50.history['val_accuracy'], label='Validation', color='blue')
plt.title('Accuracy in train and validation set', size=30)
plt.xlabel('Epoch', size=24)
plt.ylabel('Accuracy', size=24)
plt.xticks(fontsize=20)
plt.yticks(fontsize=20)
plt.legend(fontsize=20)
plt.ylim(ymin=0, ymax=1.1)
plt.grid(b=None)
plt.show()
Train on 5389 samples, validate on 306 samples Epoch 1/50 5389/5389 [==============================] - 74s 14ms/sample - loss: 0.2486 - accuracy: 0.8855 - val_loss: 1.4317 - val_accuracy: 0.7124 Epoch 2/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 0.0562 - accuracy: 0.9814 - val_loss: 1.2050 - val_accuracy: 0.7549 Epoch 3/50 5389/5389 [==============================] - 63s 12ms/sample - loss: 0.0307 - accuracy: 0.9915 - val_loss: 1.2130 - val_accuracy: 0.8105 Epoch 4/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 0.0192 - accuracy: 0.9937 - val_loss: 1.1504 - val_accuracy: 0.8170 Epoch 5/50 5389/5389 [==============================] - 64s 12ms/sample - loss: 0.0181 - accuracy: 0.9931 - val_loss: 1.2898 - val_accuracy: 0.8039 Epoch 6/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 0.0122 - accuracy: 0.9970 - val_loss: 1.8090 - val_accuracy: 0.7876 Epoch 7/50 5389/5389 [==============================] - 64s 12ms/sample - loss: 0.0100 - accuracy: 0.9967 - val_loss: 1.6588 - val_accuracy: 0.7876 Epoch 8/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 0.0197 - accuracy: 0.9939 - val_loss: 0.8638 - val_accuracy: 0.8268 Epoch 9/50 5389/5389 [==============================] - 66s 12ms/sample - loss: 0.0132 - accuracy: 0.9963 - val_loss: 1.3804 - val_accuracy: 0.8072 Epoch 10/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 0.0106 - accuracy: 0.9968 - val_loss: 1.0809 - val_accuracy: 0.8235 Epoch 11/50 5389/5389 [==============================] - 64s 12ms/sample - loss: 0.0098 - accuracy: 0.9967 - val_loss: 1.1915 - val_accuracy: 0.8203 Epoch 12/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 0.0044 - accuracy: 0.9983 - val_loss: 1.1713 - val_accuracy: 0.8170 Epoch 13/50 5389/5389 [==============================] - 61s 11ms/sample - loss: 0.0079 - accuracy: 0.9967 - val_loss: 1.1161 - val_accuracy: 0.8072 Epoch 14/50 5389/5389 [==============================] - 62s 11ms/sample - loss: 0.0052 - accuracy: 0.9987 - val_loss: 1.3310 - val_accuracy: 0.8333 Epoch 15/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 0.0019 - accuracy: 0.9996 - val_loss: 0.9952 - val_accuracy: 0.8366 Epoch 16/50 5389/5389 [==============================] - 63s 12ms/sample - loss: 0.0026 - accuracy: 0.9993 - val_loss: 1.7320 - val_accuracy: 0.7876 Epoch 17/50 5389/5389 [==============================] - 61s 11ms/sample - loss: 0.0071 - accuracy: 0.9981 - val_loss: 1.3699 - val_accuracy: 0.8105 Epoch 18/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 0.0214 - accuracy: 0.9935 - val_loss: 1.1674 - val_accuracy: 0.8333 Epoch 19/50 5389/5389 [==============================] - 63s 12ms/sample - loss: 0.0109 - accuracy: 0.9970 - val_loss: 0.9114 - val_accuracy: 0.8464 Epoch 20/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 0.0018 - accuracy: 0.9996 - val_loss: 1.2921 - val_accuracy: 0.8399 Epoch 21/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 2.3834e-04 - accuracy: 1.0000 - val_loss: 1.3749 - val_accuracy: 0.8301 Epoch 22/50 5389/5389 [==============================] - 63s 12ms/sample - loss: 1.6094e-04 - accuracy: 1.0000 - val_loss: 1.3960 - val_accuracy: 0.8301 Epoch 23/50 5389/5389 [==============================] - 61s 11ms/sample - loss: 5.9036e-05 - accuracy: 1.0000 - val_loss: 1.3888 - val_accuracy: 0.8366 Epoch 24/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 2.5970e-04 - accuracy: 1.0000 - val_loss: 1.3574 - val_accuracy: 0.8333 Epoch 25/50 5389/5389 [==============================] - 65s 12ms/sample - loss: 0.0192 - accuracy: 0.9955 - val_loss: 1.9705 - val_accuracy: 0.7582 Epoch 26/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 0.0026 - accuracy: 0.9991 - val_loss: 0.9264 - val_accuracy: 0.8333 Epoch 27/50 5389/5389 [==============================] - 61s 11ms/sample - loss: 0.0136 - accuracy: 0.9957 - val_loss: 1.8193 - val_accuracy: 0.7974 Epoch 28/50 5389/5389 [==============================] - 62s 12ms/sample - loss: 0.0086 - accuracy: 0.9970 - val_loss: 1.0706 - val_accuracy: 0.8431 Epoch 29/50 5389/5389 [==============================] - 61s 11ms/sample - loss: 0.0082 - accuracy: 0.9968 - val_loss: 1.1861 - val_accuracy: 0.8235 Epoch 30/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 0.0017 - accuracy: 0.9996 - val_loss: 1.1095 - val_accuracy: 0.8660 Epoch 31/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 9.7264e-05 - accuracy: 1.0000 - val_loss: 1.1672 - val_accuracy: 0.8693 Epoch 32/50 5389/5389 [==============================] - 62s 12ms/sample - loss: 5.7295e-05 - accuracy: 1.0000 - val_loss: 1.1899 - val_accuracy: 0.8627 Epoch 33/50 5389/5389 [==============================] - 61s 11ms/sample - loss: 9.4007e-05 - accuracy: 1.0000 - val_loss: 1.2379 - val_accuracy: 0.8693 Epoch 34/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 0.0025 - accuracy: 0.9993 - val_loss: 1.3242 - val_accuracy: 0.8529 Epoch 35/50 5389/5389 [==============================] - 61s 11ms/sample - loss: 0.0164 - accuracy: 0.9946 - val_loss: 1.7904 - val_accuracy: 0.8007 Epoch 36/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 0.0107 - accuracy: 0.9963 - val_loss: 1.0114 - val_accuracy: 0.8268 Epoch 37/50 5389/5389 [==============================] - 63s 12ms/sample - loss: 0.0154 - accuracy: 0.9967 - val_loss: 0.8230 - val_accuracy: 0.8399 Epoch 38/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 0.0017 - accuracy: 0.9994 - val_loss: 0.9680 - val_accuracy: 0.8431 Epoch 39/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 0.0023 - accuracy: 0.9993 - val_loss: 1.1463 - val_accuracy: 0.8366 Epoch 40/50 5389/5389 [==============================] - 62s 12ms/sample - loss: 6.7262e-05 - accuracy: 1.0000 - val_loss: 1.1472 - val_accuracy: 0.8431 Epoch 41/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 7.6893e-05 - accuracy: 1.0000 - val_loss: 1.2292 - val_accuracy: 0.8497 Epoch 42/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 3.4725e-05 - accuracy: 1.0000 - val_loss: 1.2508 - val_accuracy: 0.8464 Epoch 43/50 5389/5389 [==============================] - 62s 11ms/sample - loss: 3.3593e-05 - accuracy: 1.0000 - val_loss: 1.3117 - val_accuracy: 0.8529 Epoch 44/50 5389/5389 [==============================] - 64s 12ms/sample - loss: 5.0213e-05 - accuracy: 1.0000 - val_loss: 1.3325 - val_accuracy: 0.8497 Epoch 45/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 1.4746e-05 - accuracy: 1.0000 - val_loss: 1.3483 - val_accuracy: 0.8497 Epoch 46/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 8.1538e-06 - accuracy: 1.0000 - val_loss: 1.3608 - val_accuracy: 0.8464 Epoch 47/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 5.9960e-06 - accuracy: 1.0000 - val_loss: 1.3645 - val_accuracy: 0.8431 Epoch 48/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 1.3963e-05 - accuracy: 1.0000 - val_loss: 1.4083 - val_accuracy: 0.8497 Epoch 49/50 5389/5389 [==============================] - 63s 12ms/sample - loss: 1.3985e-05 - accuracy: 1.0000 - val_loss: 1.4728 - val_accuracy: 0.8595 Epoch 50/50 5389/5389 [==============================] - 60s 11ms/sample - loss: 1.4864e-05 - accuracy: 1.0000 - val_loss: 1.4781 - val_accuracy: 0.8464 The AUC in the train set is 1.0000. The AUC in the validation set is 0.9196.
# Generate predictions in the form of probabilities for the validation set
valInceptionResNetV2 = model.predict(shuffled_val_X, batch_size = 32)
# Generate the confusion matrix in the validation set
y_true = np.argmax(shuffled_val_y, axis=1)
y_predInceptionResNetV2 = np.argmax(valInceptionResNetV2, axis=1)
# Confusion matrix
pd.DataFrame(confusion_matrix(y_true, y_predInceptionResNetV2), index=['True: Normal', 'True: Diffuse CM'], columns=['Prediction: Normal', 'Prediction: Diffuse CM']).T
| True: Normal | True: Diffuse CM | |
|---|---|---|
| Prediction: Normal | 145 | 33 |
| Prediction: Diffuse CM | 14 | 114 |
# Calculate accuracy in the validation set
accuracy_InceptionResNetV2 = accuracy_score(y_true=y_true, y_pred=y_predInceptionResNetV2)
print('The accuracy in the validation set is {:.4f}.'.format(accuracy_InceptionResNetV2))
The accuracy in the validation set is 0.8464.
# Calculate AUC in the validation set
auc_validInceptionResNetV2 = roc_auc_score(shuffled_val_y, model.predict(shuffled_val_X))
print('The AUC in the validation set is {:.4f}.'.format(auc_validInceptionResNetV2))
The AUC in the validation set is 0.9196.
# Classification report
print(classification_report(y_true, y_predInceptionResNetV2, target_names=['Normal MRI', 'Diffuse CM']))
precision recall f1-score support
Normal MRI 0.81 0.91 0.86 159
Diffuse CM 0.89 0.78 0.83 147
accuracy 0.85 306
macro avg 0.85 0.84 0.84 306
weighted avg 0.85 0.85 0.85 306
# Serialize model to JSON
model_json = model.to_json()
with open("InceptionResNetV2.json", "w") as json_file:
json_file.write(model_json)
# Serialize weights to HDF5
model.save_weights("InceptionResNetV2.h5")
# Visualize the structure and layers of the model
model.layers
[<tensorflow.python.keras.engine.input_layer.InputLayer at 0x7f647c67b0b8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c67b198>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c67b7f0>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c67bb00>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c67b4a8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e00c78d0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e00c7b70>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e00c7588>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c06b8a58>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c06a3320>, <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f63c06b8710>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c06b8dd8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c06b5c18>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c06806d8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0680128>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6388616eb8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63886239b0>, <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f63886230f0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63887ba160>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63887dceb8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63887e39b0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f633474a828>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63887e30f0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6378094dd8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6388394748>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378094da0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6388394cc0>, <tensorflow.python.keras.layers.pooling.AveragePooling2D at 0x7f63e0337710>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63886237b8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f637807f240>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6388394400>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e0337dd8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f633474aa90>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6378088cf8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e0337a58>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e02faf28>, <tensorflow.python.keras.layers.core.Activation at 0x7f633476d048>, <tensorflow.python.keras.layers.core.Activation at 0x7f63887ba6a0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e031f198>, <tensorflow.python.keras.layers.core.Activation at 0x7f63782ea7b8>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63782ea208>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6378509128>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e02bae80>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e02c2978>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63782f3518>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e02c20b8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6378165da0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e02bb710>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378165d68>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e02bbc88>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63782ea518>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6378155240>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e02bb3c8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63782f3a58>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f637850bcc0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c0646a20>, <tensorflow.python.keras.layers.core.Activation at 0x7f63782e5048>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378509668>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0653160>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63c06466d8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0646da0>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63c0410cc0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0410b70>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6388154a20>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63881730f0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6388151c88>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c04003c8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6388151ba8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63885a8a58>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6378738ef0>, <tensorflow.python.keras.layers.core.Activation at 0x7f638859b198>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378720a58>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0410e10>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63885a8710>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6378720630>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c0416320>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6388154d68>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e04a26d8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0400cf8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6388154d30>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e04a2c50>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63e04a2390>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e04a2a58>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63e0083e48>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e0083668>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c02206d8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f643028cd30>, <tensorflow.python.keras.layers.core.Activation at 0x7f643028ccf8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e0089080>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f643028c9e8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c0227710>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63786dec50>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0227c88>, <tensorflow.python.keras.layers.core.Activation at 0x7f63786f35f8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e0083828>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c02273c8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63786f30b8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e00a3ac8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c0220a20>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63786baeb8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e00899b0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c022b160>, <tensorflow.python.keras.layers.core.Activation at 0x7f63784f7908>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63784f7048>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63784f7710>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63784d9b00>, <tensorflow.python.keras.layers.core.Activation at 0x7f63784d9eb8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e0110390>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63787899e8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378789fd0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c02b00b8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63787896a0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c02a9ef0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6378798cf8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c028c940>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378798cc0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63784d95f8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c028c080>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6378798f60>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63784bbc50>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e01106d8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e04e4c18>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c02b0668>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e0110c50>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e04e4fd0>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63e04d8048>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e04d83c8>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63887887b8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6388788b70>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0099048>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c00846a0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0084c18>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63887aca58>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0084358>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f638833ec50>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63785ad9b0>, <tensorflow.python.keras.layers.core.Activation at 0x7f638833d5f8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63785adf98>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63887882b0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f638833d0b8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63785ad668>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63887ac4e0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c00a5eb8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63882294a8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63887ac128>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0099908>, <tensorflow.python.keras.layers.core.Activation at 0x7f6388229400>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6388229e80>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6388229cf8>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63881fef98>, <tensorflow.python.keras.layers.core.Activation at 0x7f63881fec50>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6388642048>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f638842de80>, <tensorflow.python.keras.layers.core.Activation at 0x7f63884348d0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c04bc668>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6388434160>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c04c0cf8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63347f6eb8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c04c0cc0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63347f6a20>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c04f3470>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c04c0f60>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63347f6630>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c04bc9b0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f638865fc18>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63347c2978>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c04bcfd0>, <tensorflow.python.keras.layers.core.Activation at 0x7f638865ffd0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63347c2f60>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63347c2630>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63347c2cf8>, <tensorflow.python.keras.layers.core.Lambda at 0x7f6378068c18>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378068ac8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e0260f98>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e0242048>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e0242d30>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6378040320>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c394048>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63783a09b0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c3b8e48>, <tensorflow.python.keras.layers.core.Activation at 0x7f63783a0f98>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c384898>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6378068d68>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63783a0668>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c384128>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f637805ccc0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e0260cc0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64301dd630>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378040c50>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e0260c88>, <tensorflow.python.keras.layers.core.Activation at 0x7f64301ddba8>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f64301dd2e8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64301dd9b0>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63e006ada0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e006a5c0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c061b630>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63885647f0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6388564860>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e0067128>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6388564cf8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c0637668>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6388061f98>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0637be0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6388061f60>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e006a780>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0637320>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6388048400>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e0071a20>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c061b978>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6388051e10>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e0067908>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c061bf60>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378638860>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63786380f0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6378638668>, <tensorflow.python.keras.layers.core.Lambda at 0x7f637861ba58>, <tensorflow.python.keras.layers.core.Activation at 0x7f637861be10>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64306a53c8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c02ec940>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c02ecf28>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f637829a358>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c02ec5f8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6378291e48>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c02d6c50>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378285898>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c02d6c18>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f637861b550>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6378285128>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c02d6e80>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6378606f98>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64306a5860>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6388478f60>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378606f60>, <tensorflow.python.keras.layers.core.Activation at 0x7f64306a50b8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6388478f28>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6388463400>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63884633c8>, <tensorflow.python.keras.layers.core.Lambda at 0x7f637849e710>, <tensorflow.python.keras.layers.core.Activation at 0x7f637849eac8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63783c30f0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63787e05f8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63787e0b70>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6378489eb8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63787e02b0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63783d4f98>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6388120908>, <tensorflow.python.keras.layers.core.Activation at 0x7f63783d4f60>, <tensorflow.python.keras.layers.core.Activation at 0x7f6388120ef0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f637849e208>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63783d0400>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63881205c0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6378489c50>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63783cce10>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6388272c18>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378489c18>, <tensorflow.python.keras.layers.core.Activation at 0x7f63783c3860>, <tensorflow.python.keras.layers.core.Activation at 0x7f638823e1d0>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63882728d0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6388272e48>, <tensorflow.python.keras.layers.core.Lambda at 0x7f638826cf60>, <tensorflow.python.keras.layers.core.Activation at 0x7f638826cfd0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63887505c0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63887625f8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6388749128>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6388762a20>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c03dada0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c03dad68>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f638826cf28>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c03f4240>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6388750908>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e043efd0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6388750f28>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e043ec88>, <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f63e0446048>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63e0446390>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e0471748>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e041dd68>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e041dd30>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e041da20>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e03c8c88>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e03d0630>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e0469cc0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e03d00f0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e0471b00>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e03f2e10>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e03fb128>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e037c860>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63e037c0f0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e037c668>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63e03a9978>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e03a9d30>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e033b320>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e035dd30>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e03636d8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e0363198>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e028aef0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e02919e8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e03a9518>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e0291128>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e03b2eb8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e01fd6a0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e03b2e80>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e01fdc18>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63e01fd358>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e01fda20>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63e0229d30>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e0229550>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e01bb0b8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e01e6518>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e01e6a90>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e01e61d0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e0193828>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e0193da0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e0229710>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e01934e0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e022f9b0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e013ea58>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e01bb898>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e0147198>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63e013e710>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e013edd8>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63e0169e10>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e0169ac8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c07b9320>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c07e68d0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c07e6e48>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c07e6588>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c0792be0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0799198>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e0169d68>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0792898>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e0170cc0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c073de10>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c07b9c50>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c073ddd8>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63c07472b0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0747278>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63c0767cc0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0771898>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c06fb6d8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c0727c88>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0727c50>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0727ef0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c06d1f98>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c06d1f60>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0771518>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c06da400>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c06fba20>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c05bedd8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0704160>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c05c5780>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63c05c5240>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c05c5588>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63c05f1898>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c05f1c50>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0582278>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c05a5c50>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c05ad5f8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c05ad0b8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c0550eb8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c055a908>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c05f1438>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c055a048>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c057cdd8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c05055c0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c057cda0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0505b38>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63c0505278>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0505940>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63c0531c50>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0531470>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0444208>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c0466eb8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c04709b0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c04700f0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c0398748>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0398cc0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0531630>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0398400>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c0535da0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c0348978>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c04447b8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0348f60>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63c0348630>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0348cf8>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63c0373d30>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c03739e8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0302240>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c03307f0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0330d68>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c03304a8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c01ddb00>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c01e20b8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0373fd0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c01dd7b8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c02f9be0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c0186d30>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0302b70>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0186cf8>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63c01869e8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c018f1d0>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63c01b1f60>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c01b1da0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c01435f8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c016fba8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0177160>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c016f860>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c0119eb8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0119e80>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c01b1eb8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c0125358>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c0143940>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c00c7cf8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c0143f60>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c00cf6a0>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63c00cf160>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c00cf4a8>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63886fb7b8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63886fbb70>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63887059b0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f638872ff60>, <tensorflow.python.keras.layers.core.Activation at 0x7f638872ff28>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63886b9400>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63886dcdd8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63886e3828>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63886fb358>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63886e30b8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6388705cf8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6388687f60>, <tensorflow.python.keras.layers.core.Activation at 0x7f6388705cc0>, <tensorflow.python.keras.layers.core.Activation at 0x7f638868fa58>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f638868f198>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f638868f860>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63884fcb70>, <tensorflow.python.keras.layers.core.Activation at 0x7f63884fce80>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f638850e128>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6388530e80>, <tensorflow.python.keras.layers.core.Activation at 0x7f63884b98d0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63884b9160>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63884e4668>, <tensorflow.python.keras.layers.core.Activation at 0x7f63884e4be0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63884fc710>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63884e4320>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6388504cc0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6388492898>, <tensorflow.python.keras.layers.core.Activation at 0x7f638850e6d8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6388492e10>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6388492550>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6388492c18>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63882fef28>, <tensorflow.python.keras.layers.core.Activation at 0x7f63882fe748>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f638830d160>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63882b9710>, <tensorflow.python.keras.layers.core.Activation at 0x7f63882b9c88>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63882b93c8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63882e6a20>, <tensorflow.python.keras.layers.core.Activation at 0x7f63882ed160>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63882fe908>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63882e66d8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6388306b00>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6388290c50>, <tensorflow.python.keras.layers.core.Activation at 0x7f638830da90>, <tensorflow.python.keras.layers.core.Activation at 0x7f6388290c18>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6388290e80>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6388290eb8>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63880bce10>, <tensorflow.python.keras.layers.core.Activation at 0x7f63880bce80>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63880ce518>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f638807aac8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6388082080>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f638807a780>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63880a3dd8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63880a3da0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63880bcdd8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63880ae240>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63880c3ef0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6378692c18>, <tensorflow.python.keras.layers.core.Activation at 0x7f63880cee48>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378692fd0>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6378697048>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63786973c8>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63786436d8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378643a90>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f637864cc88>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63785bae80>, <tensorflow.python.keras.layers.core.Activation at 0x7f63785bae48>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63785c2320>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63785e7da0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63785ed748>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6378643278>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63785ed208>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f637864cc18>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f637844fe80>, <tensorflow.python.keras.layers.core.Activation at 0x7f637864cbe0>, <tensorflow.python.keras.layers.core.Activation at 0x7f637845a978>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f637845a0b8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f637845a780>, <tensorflow.python.keras.layers.core.Lambda at 0x7f6378404a90>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378404e48>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6378417048>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6378438da0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63782437f0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6378243080>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f637826f588>, <tensorflow.python.keras.layers.core.Activation at 0x7f637826fb00>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6378404630>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f637826f240>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f637840efd0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f637821b7b8>, <tensorflow.python.keras.layers.core.Activation at 0x7f637840ec88>, <tensorflow.python.keras.layers.core.Activation at 0x7f637821bd30>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f637821b470>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f637821bb38>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63781c6e48>, <tensorflow.python.keras.layers.core.Activation at 0x7f63781c6668>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63781d6080>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6378183630>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378183ba8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63781832e8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63781b0940>, <tensorflow.python.keras.layers.core.Activation at 0x7f63781b0f28>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63781c6828>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63781b05f8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63781cfac8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f633479ab70>, <tensorflow.python.keras.layers.core.Activation at 0x7f63781d69b0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63347a2128>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f633479a828>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f633479aef0>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63343c4f28>, <tensorflow.python.keras.layers.core.Activation at 0x7f63343c4be0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63343d6438>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63343859e8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6334385fd0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63343856a0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63343accf8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63343accc0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63343c4e80>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63343acf60>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63343ccdd8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f633435bf28>, <tensorflow.python.keras.layers.core.Activation at 0x7f63343d6d68>, <tensorflow.python.keras.layers.core.Activation at 0x7f633435bef0>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63343623c8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6334362390>, <tensorflow.python.keras.layers.core.Lambda at 0x7f6334305dd8>, <tensorflow.python.keras.layers.core.Activation at 0x7f633430c9b0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63343167f0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63342c0da0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63342c0d68>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63342cc240>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63342eecc0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63342f5668>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f633430c198>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63342f5128>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6334316b38>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6334299e48>, <tensorflow.python.keras.layers.core.Activation at 0x7f6334320160>, <tensorflow.python.keras.layers.core.Activation at 0x7f63342a1898>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63342a1128>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63342a16a0>, <tensorflow.python.keras.layers.core.Lambda at 0x7f633424e9b0>, <tensorflow.python.keras.layers.core.Activation at 0x7f633424ed68>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6334262358>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6334202d68>, <tensorflow.python.keras.layers.core.Activation at 0x7f633420a710>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f633420a1d0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f633422cf28>, <tensorflow.python.keras.layers.core.Activation at 0x7f6334235a20>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f633424e550>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6334235160>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6334259ef0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63341e26d8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6334259eb8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63341e2c50>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63341e2390>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63341e2a58>, <tensorflow.python.keras.layers.core.Lambda at 0x7f633418fd68>, <tensorflow.python.keras.layers.core.Activation at 0x7f633418f588>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f633419f0f0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f633414a550>, <tensorflow.python.keras.layers.core.Activation at 0x7f633414aac8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f633414a208>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6334177860>, <tensorflow.python.keras.layers.core.Activation at 0x7f6334177dd8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f633418f748>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6334177518>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63341949e8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6334124a90>, <tensorflow.python.keras.layers.core.Activation at 0x7f633419f8d0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6334129080>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6334124748>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6334124e10>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63340cde48>, <tensorflow.python.keras.layers.core.Activation at 0x7f63340cdb00>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6334065a20>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f632c7cff98>, <tensorflow.python.keras.layers.core.Activation at 0x7f632c7cff60>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63340cdda0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f633408e5c0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f632c7d5400>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63340d4cf8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6334039b38>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f632c77cdd8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63340e2c88>, <tensorflow.python.keras.layers.core.Activation at 0x7f63340420f0>, <tensorflow.python.keras.layers.core.Activation at 0x7f632c783780>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63340e2358>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63340397f0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f632c783240>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f633408e908>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6334065d68>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f632c7a5eb8>, <tensorflow.python.keras.layers.core.Activation at 0x7f633408eef0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6334065d30>, <tensorflow.python.keras.layers.core.Activation at 0x7f632c7b19b0>, <tensorflow.python.keras.layers.pooling.MaxPooling2D at 0x7f632c7b10f0>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f632c7b17b8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f632c761048>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f632c705dd8>, <tensorflow.python.keras.layers.core.Activation at 0x7f632c70f828>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f632c70f0b8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63881c9160>, <tensorflow.python.keras.layers.core.Activation at 0x7f63881c9390>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f632c75a710>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63881c9588>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f632c75acc0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f637855e0f0>, <tensorflow.python.keras.layers.core.Activation at 0x7f632c75afd0>, <tensorflow.python.keras.layers.core.Activation at 0x7f637855ee10>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f637855e048>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e0588dd8>, <tensorflow.python.keras.layers.core.Lambda at 0x7f648809d860>, <tensorflow.python.keras.layers.core.Activation at 0x7f648809da58>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64284994a8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6430500780>, <tensorflow.python.keras.layers.core.Activation at 0x7f6430500550>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64305006a0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f642830f2e8>, <tensorflow.python.keras.layers.core.Activation at 0x7f642830f080>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f648809de80>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6488293e10>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6428499860>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f648828b5c0>, <tensorflow.python.keras.layers.core.Activation at 0x7f64880a1a90>, <tensorflow.python.keras.layers.core.Activation at 0x7f651c155278>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6430527860>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6430527940>, <tensorflow.python.keras.layers.core.Lambda at 0x7f6430173080>, <tensorflow.python.keras.layers.core.Activation at 0x7f6388183518>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63783722b0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c5c0f98>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c339358>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64305215f8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f633448e8d0>, <tensorflow.python.keras.layers.core.Activation at 0x7f633448e358>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6388183b70>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f633448e898>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6378372208>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63885d52b0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378372a58>, <tensorflow.python.keras.layers.core.Activation at 0x7f63885d5400>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63780fd630>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63780fda20>, <tensorflow.python.keras.layers.core.Lambda at 0x7f6430519588>, <tensorflow.python.keras.layers.core.Activation at 0x7f64305197f0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c04b62e8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6334772cf8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63780e76a0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63780e7160>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63881e8e80>, <tensorflow.python.keras.layers.core.Activation at 0x7f63881f48d0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6430519d68>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63881f4160>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64301220b8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c1ff588>, <tensorflow.python.keras.layers.core.Activation at 0x7f632c730e48>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c1ffb00>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f647c1ff5f8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c1ff908>, <tensorflow.python.keras.layers.core.Lambda at 0x7f647c605c18>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c605438>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c60f1d0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f651c122e80>, <tensorflow.python.keras.layers.core.Activation at 0x7f651c111978>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f651c1110b8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f642832c630>, <tensorflow.python.keras.layers.core.Activation at 0x7f642832cba8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f647c6055f8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f642832c2e8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f647c5fed68>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6430104860>, <tensorflow.python.keras.layers.core.Activation at 0x7f647c60f780>, <tensorflow.python.keras.layers.core.Activation at 0x7f6430104dd8>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f64301048d0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6430104be0>, <tensorflow.python.keras.layers.core.Lambda at 0x7f6378574ef0>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378574710>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6430412128>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64304206d8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6430420c50>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6430420390>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f642849ce48>, <tensorflow.python.keras.layers.core.Activation at 0x7f642849c668>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63785748d0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f642849c9e8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6430407dd8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f642847bb38>, <tensorflow.python.keras.layers.core.Activation at 0x7f6430412a58>, <tensorflow.python.keras.layers.core.Activation at 0x7f64880b30f0>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f642847bba8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f642847beb8>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63344a4ef0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63344a4ba8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f633449e400>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63885e79b0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63885e7f98>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63885e7668>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63e055bbe0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63e0574198>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63344a4e48>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63e055b898>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f633447e278>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f637812de10>, <tensorflow.python.keras.layers.core.Activation at 0x7f633449ed30>, <tensorflow.python.keras.layers.core.Activation at 0x7f637812ddd8>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6378114080>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6378114278>, <tensorflow.python.keras.layers.core.Lambda at 0x7f64885cecc0>, <tensorflow.python.keras.layers.core.Activation at 0x7f64885d9898>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64885d66d8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63346ccc88>, <tensorflow.python.keras.layers.core.Activation at 0x7f63346ccc50>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63346ccef0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63883e4eb8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63883e4e80>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f64885d9518>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63883f2358>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f64885d6a20>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63c0059cf8>, <tensorflow.python.keras.layers.core.Activation at 0x7f64885f0160>, <tensorflow.python.keras.layers.core.Activation at 0x7f63c00446a0>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63c0044198>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63c00444a8>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63787487b8>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378748b70>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f637876d9b0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6378306f60>, <tensorflow.python.keras.layers.core.Activation at 0x7f6378306f28>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6378328400>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6334685da0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63346b6fd0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6378748358>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63346b6828>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f637876dcf8>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63346afe80>, <tensorflow.python.keras.layers.core.Activation at 0x7f637876dcc0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63344bb978>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f63344bb470>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63344bb780>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63344c4a90>, <tensorflow.python.keras.layers.core.Activation at 0x7f63344c4e48>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6334664048>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f6334663da0>, <tensorflow.python.keras.layers.core.Activation at 0x7f63346657f0>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6334665080>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63346fcf28>, <tensorflow.python.keras.layers.core.Activation at 0x7f6334703a20>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f63344c4630>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6334703160>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63344d9fd0>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f63346336d8>, <tensorflow.python.keras.layers.core.Activation at 0x7f63344d9c88>, <tensorflow.python.keras.layers.core.Activation at 0x7f6334633c50>, <tensorflow.python.keras.layers.merge.Concatenate at 0x7f6334633748>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6334633a58>, <tensorflow.python.keras.layers.core.Lambda at 0x7f63346052e8>, <tensorflow.python.keras.layers.convolutional.Conv2D at 0x7f6334605d68>, <tensorflow.python.keras.layers.normalization_v2.BatchNormalization at 0x7f633452ff28>, <tensorflow.python.keras.layers.core.Activation at 0x7f633452fef0>, <tensorflow.python.keras.layers.pooling.GlobalAveragePooling2D at 0x7f63345a9e10>, <tensorflow.python.keras.layers.core.Dense at 0x7f647c67b080>, <tensorflow.python.keras.layers.core.Dropout at 0x7f632c6ed080>, <tensorflow.python.keras.layers.core.Dense at 0x7f632c694978>, <tensorflow.python.keras.layers.core.Dropout at 0x7f632c694518>, <tensorflow.python.keras.layers.core.Dense at 0x7f632c6f82b0>, <tensorflow.python.keras.layers.core.Dense at 0x7f63345c2cf8>]
# Visualize the structure and layers of the model
print(model.summary())
Model: "model_123"
__________________________________________________________________________________________________
Layer (type) Output Shape Param # Connected to
==================================================================================================
input_4 (InputLayer) [(None, 512, 512, 3) 0
__________________________________________________________________________________________________
conv2d_129 (Conv2D) (None, 255, 255, 32) 864 input_4[0][0]
__________________________________________________________________________________________________
batch_normalization_98 (BatchNo (None, 255, 255, 32) 96 conv2d_129[0][0]
__________________________________________________________________________________________________
activation_98 (Activation) (None, 255, 255, 32) 0 batch_normalization_98[0][0]
__________________________________________________________________________________________________
conv2d_130 (Conv2D) (None, 253, 253, 32) 9216 activation_98[0][0]
__________________________________________________________________________________________________
batch_normalization_99 (BatchNo (None, 253, 253, 32) 96 conv2d_130[0][0]
__________________________________________________________________________________________________
activation_99 (Activation) (None, 253, 253, 32) 0 batch_normalization_99[0][0]
__________________________________________________________________________________________________
conv2d_131 (Conv2D) (None, 253, 253, 64) 18432 activation_99[0][0]
__________________________________________________________________________________________________
batch_normalization_100 (BatchN (None, 253, 253, 64) 192 conv2d_131[0][0]
__________________________________________________________________________________________________
activation_100 (Activation) (None, 253, 253, 64) 0 batch_normalization_100[0][0]
__________________________________________________________________________________________________
max_pooling2d_14 (MaxPooling2D) (None, 126, 126, 64) 0 activation_100[0][0]
__________________________________________________________________________________________________
conv2d_132 (Conv2D) (None, 126, 126, 80) 5120 max_pooling2d_14[0][0]
__________________________________________________________________________________________________
batch_normalization_101 (BatchN (None, 126, 126, 80) 240 conv2d_132[0][0]
__________________________________________________________________________________________________
activation_101 (Activation) (None, 126, 126, 80) 0 batch_normalization_101[0][0]
__________________________________________________________________________________________________
conv2d_133 (Conv2D) (None, 124, 124, 192 138240 activation_101[0][0]
__________________________________________________________________________________________________
batch_normalization_102 (BatchN (None, 124, 124, 192 576 conv2d_133[0][0]
__________________________________________________________________________________________________
activation_102 (Activation) (None, 124, 124, 192 0 batch_normalization_102[0][0]
__________________________________________________________________________________________________
max_pooling2d_15 (MaxPooling2D) (None, 61, 61, 192) 0 activation_102[0][0]
__________________________________________________________________________________________________
conv2d_137 (Conv2D) (None, 61, 61, 64) 12288 max_pooling2d_15[0][0]
__________________________________________________________________________________________________
batch_normalization_106 (BatchN (None, 61, 61, 64) 192 conv2d_137[0][0]
__________________________________________________________________________________________________
activation_106 (Activation) (None, 61, 61, 64) 0 batch_normalization_106[0][0]
__________________________________________________________________________________________________
conv2d_135 (Conv2D) (None, 61, 61, 48) 9216 max_pooling2d_15[0][0]
__________________________________________________________________________________________________
conv2d_138 (Conv2D) (None, 61, 61, 96) 55296 activation_106[0][0]
__________________________________________________________________________________________________
batch_normalization_104 (BatchN (None, 61, 61, 48) 144 conv2d_135[0][0]
__________________________________________________________________________________________________
batch_normalization_107 (BatchN (None, 61, 61, 96) 288 conv2d_138[0][0]
__________________________________________________________________________________________________
activation_104 (Activation) (None, 61, 61, 48) 0 batch_normalization_104[0][0]
__________________________________________________________________________________________________
activation_107 (Activation) (None, 61, 61, 96) 0 batch_normalization_107[0][0]
__________________________________________________________________________________________________
average_pooling2d_9 (AveragePoo (None, 61, 61, 192) 0 max_pooling2d_15[0][0]
__________________________________________________________________________________________________
conv2d_134 (Conv2D) (None, 61, 61, 96) 18432 max_pooling2d_15[0][0]
__________________________________________________________________________________________________
conv2d_136 (Conv2D) (None, 61, 61, 64) 76800 activation_104[0][0]
__________________________________________________________________________________________________
conv2d_139 (Conv2D) (None, 61, 61, 96) 82944 activation_107[0][0]
__________________________________________________________________________________________________
conv2d_140 (Conv2D) (None, 61, 61, 64) 12288 average_pooling2d_9[0][0]
__________________________________________________________________________________________________
batch_normalization_103 (BatchN (None, 61, 61, 96) 288 conv2d_134[0][0]
__________________________________________________________________________________________________
batch_normalization_105 (BatchN (None, 61, 61, 64) 192 conv2d_136[0][0]
__________________________________________________________________________________________________
batch_normalization_108 (BatchN (None, 61, 61, 96) 288 conv2d_139[0][0]
__________________________________________________________________________________________________
batch_normalization_109 (BatchN (None, 61, 61, 64) 192 conv2d_140[0][0]
__________________________________________________________________________________________________
activation_103 (Activation) (None, 61, 61, 96) 0 batch_normalization_103[0][0]
__________________________________________________________________________________________________
activation_105 (Activation) (None, 61, 61, 64) 0 batch_normalization_105[0][0]
__________________________________________________________________________________________________
activation_108 (Activation) (None, 61, 61, 96) 0 batch_normalization_108[0][0]
__________________________________________________________________________________________________
activation_109 (Activation) (None, 61, 61, 64) 0 batch_normalization_109[0][0]
__________________________________________________________________________________________________
mixed_5b (Concatenate) (None, 61, 61, 320) 0 activation_103[0][0]
activation_105[0][0]
activation_108[0][0]
activation_109[0][0]
__________________________________________________________________________________________________
conv2d_144 (Conv2D) (None, 61, 61, 32) 10240 mixed_5b[0][0]
__________________________________________________________________________________________________
batch_normalization_113 (BatchN (None, 61, 61, 32) 96 conv2d_144[0][0]
__________________________________________________________________________________________________
activation_113 (Activation) (None, 61, 61, 32) 0 batch_normalization_113[0][0]
__________________________________________________________________________________________________
conv2d_142 (Conv2D) (None, 61, 61, 32) 10240 mixed_5b[0][0]
__________________________________________________________________________________________________
conv2d_145 (Conv2D) (None, 61, 61, 48) 13824 activation_113[0][0]
__________________________________________________________________________________________________
batch_normalization_111 (BatchN (None, 61, 61, 32) 96 conv2d_142[0][0]
__________________________________________________________________________________________________
batch_normalization_114 (BatchN (None, 61, 61, 48) 144 conv2d_145[0][0]
__________________________________________________________________________________________________
activation_111 (Activation) (None, 61, 61, 32) 0 batch_normalization_111[0][0]
__________________________________________________________________________________________________
activation_114 (Activation) (None, 61, 61, 48) 0 batch_normalization_114[0][0]
__________________________________________________________________________________________________
conv2d_141 (Conv2D) (None, 61, 61, 32) 10240 mixed_5b[0][0]
__________________________________________________________________________________________________
conv2d_143 (Conv2D) (None, 61, 61, 32) 9216 activation_111[0][0]
__________________________________________________________________________________________________
conv2d_146 (Conv2D) (None, 61, 61, 64) 27648 activation_114[0][0]
__________________________________________________________________________________________________
batch_normalization_110 (BatchN (None, 61, 61, 32) 96 conv2d_141[0][0]
__________________________________________________________________________________________________
batch_normalization_112 (BatchN (None, 61, 61, 32) 96 conv2d_143[0][0]
__________________________________________________________________________________________________
batch_normalization_115 (BatchN (None, 61, 61, 64) 192 conv2d_146[0][0]
__________________________________________________________________________________________________
activation_110 (Activation) (None, 61, 61, 32) 0 batch_normalization_110[0][0]
__________________________________________________________________________________________________
activation_112 (Activation) (None, 61, 61, 32) 0 batch_normalization_112[0][0]
__________________________________________________________________________________________________
activation_115 (Activation) (None, 61, 61, 64) 0 batch_normalization_115[0][0]
__________________________________________________________________________________________________
block35_1_mixed (Concatenate) (None, 61, 61, 128) 0 activation_110[0][0]
activation_112[0][0]
activation_115[0][0]
__________________________________________________________________________________________________
block35_1_conv (Conv2D) (None, 61, 61, 320) 41280 block35_1_mixed[0][0]
__________________________________________________________________________________________________
block35_1 (Lambda) (None, 61, 61, 320) 0 mixed_5b[0][0]
block35_1_conv[0][0]
__________________________________________________________________________________________________
block35_1_ac (Activation) (None, 61, 61, 320) 0 block35_1[0][0]
__________________________________________________________________________________________________
conv2d_150 (Conv2D) (None, 61, 61, 32) 10240 block35_1_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_119 (BatchN (None, 61, 61, 32) 96 conv2d_150[0][0]
__________________________________________________________________________________________________
activation_119 (Activation) (None, 61, 61, 32) 0 batch_normalization_119[0][0]
__________________________________________________________________________________________________
conv2d_148 (Conv2D) (None, 61, 61, 32) 10240 block35_1_ac[0][0]
__________________________________________________________________________________________________
conv2d_151 (Conv2D) (None, 61, 61, 48) 13824 activation_119[0][0]
__________________________________________________________________________________________________
batch_normalization_117 (BatchN (None, 61, 61, 32) 96 conv2d_148[0][0]
__________________________________________________________________________________________________
batch_normalization_120 (BatchN (None, 61, 61, 48) 144 conv2d_151[0][0]
__________________________________________________________________________________________________
activation_117 (Activation) (None, 61, 61, 32) 0 batch_normalization_117[0][0]
__________________________________________________________________________________________________
activation_120 (Activation) (None, 61, 61, 48) 0 batch_normalization_120[0][0]
__________________________________________________________________________________________________
conv2d_147 (Conv2D) (None, 61, 61, 32) 10240 block35_1_ac[0][0]
__________________________________________________________________________________________________
conv2d_149 (Conv2D) (None, 61, 61, 32) 9216 activation_117[0][0]
__________________________________________________________________________________________________
conv2d_152 (Conv2D) (None, 61, 61, 64) 27648 activation_120[0][0]
__________________________________________________________________________________________________
batch_normalization_116 (BatchN (None, 61, 61, 32) 96 conv2d_147[0][0]
__________________________________________________________________________________________________
batch_normalization_118 (BatchN (None, 61, 61, 32) 96 conv2d_149[0][0]
__________________________________________________________________________________________________
batch_normalization_121 (BatchN (None, 61, 61, 64) 192 conv2d_152[0][0]
__________________________________________________________________________________________________
activation_116 (Activation) (None, 61, 61, 32) 0 batch_normalization_116[0][0]
__________________________________________________________________________________________________
activation_118 (Activation) (None, 61, 61, 32) 0 batch_normalization_118[0][0]
__________________________________________________________________________________________________
activation_121 (Activation) (None, 61, 61, 64) 0 batch_normalization_121[0][0]
__________________________________________________________________________________________________
block35_2_mixed (Concatenate) (None, 61, 61, 128) 0 activation_116[0][0]
activation_118[0][0]
activation_121[0][0]
__________________________________________________________________________________________________
block35_2_conv (Conv2D) (None, 61, 61, 320) 41280 block35_2_mixed[0][0]
__________________________________________________________________________________________________
block35_2 (Lambda) (None, 61, 61, 320) 0 block35_1_ac[0][0]
block35_2_conv[0][0]
__________________________________________________________________________________________________
block35_2_ac (Activation) (None, 61, 61, 320) 0 block35_2[0][0]
__________________________________________________________________________________________________
conv2d_156 (Conv2D) (None, 61, 61, 32) 10240 block35_2_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_125 (BatchN (None, 61, 61, 32) 96 conv2d_156[0][0]
__________________________________________________________________________________________________
activation_125 (Activation) (None, 61, 61, 32) 0 batch_normalization_125[0][0]
__________________________________________________________________________________________________
conv2d_154 (Conv2D) (None, 61, 61, 32) 10240 block35_2_ac[0][0]
__________________________________________________________________________________________________
conv2d_157 (Conv2D) (None, 61, 61, 48) 13824 activation_125[0][0]
__________________________________________________________________________________________________
batch_normalization_123 (BatchN (None, 61, 61, 32) 96 conv2d_154[0][0]
__________________________________________________________________________________________________
batch_normalization_126 (BatchN (None, 61, 61, 48) 144 conv2d_157[0][0]
__________________________________________________________________________________________________
activation_123 (Activation) (None, 61, 61, 32) 0 batch_normalization_123[0][0]
__________________________________________________________________________________________________
activation_126 (Activation) (None, 61, 61, 48) 0 batch_normalization_126[0][0]
__________________________________________________________________________________________________
conv2d_153 (Conv2D) (None, 61, 61, 32) 10240 block35_2_ac[0][0]
__________________________________________________________________________________________________
conv2d_155 (Conv2D) (None, 61, 61, 32) 9216 activation_123[0][0]
__________________________________________________________________________________________________
conv2d_158 (Conv2D) (None, 61, 61, 64) 27648 activation_126[0][0]
__________________________________________________________________________________________________
batch_normalization_122 (BatchN (None, 61, 61, 32) 96 conv2d_153[0][0]
__________________________________________________________________________________________________
batch_normalization_124 (BatchN (None, 61, 61, 32) 96 conv2d_155[0][0]
__________________________________________________________________________________________________
batch_normalization_127 (BatchN (None, 61, 61, 64) 192 conv2d_158[0][0]
__________________________________________________________________________________________________
activation_122 (Activation) (None, 61, 61, 32) 0 batch_normalization_122[0][0]
__________________________________________________________________________________________________
activation_124 (Activation) (None, 61, 61, 32) 0 batch_normalization_124[0][0]
__________________________________________________________________________________________________
activation_127 (Activation) (None, 61, 61, 64) 0 batch_normalization_127[0][0]
__________________________________________________________________________________________________
block35_3_mixed (Concatenate) (None, 61, 61, 128) 0 activation_122[0][0]
activation_124[0][0]
activation_127[0][0]
__________________________________________________________________________________________________
block35_3_conv (Conv2D) (None, 61, 61, 320) 41280 block35_3_mixed[0][0]
__________________________________________________________________________________________________
block35_3 (Lambda) (None, 61, 61, 320) 0 block35_2_ac[0][0]
block35_3_conv[0][0]
__________________________________________________________________________________________________
block35_3_ac (Activation) (None, 61, 61, 320) 0 block35_3[0][0]
__________________________________________________________________________________________________
conv2d_162 (Conv2D) (None, 61, 61, 32) 10240 block35_3_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_131 (BatchN (None, 61, 61, 32) 96 conv2d_162[0][0]
__________________________________________________________________________________________________
activation_131 (Activation) (None, 61, 61, 32) 0 batch_normalization_131[0][0]
__________________________________________________________________________________________________
conv2d_160 (Conv2D) (None, 61, 61, 32) 10240 block35_3_ac[0][0]
__________________________________________________________________________________________________
conv2d_163 (Conv2D) (None, 61, 61, 48) 13824 activation_131[0][0]
__________________________________________________________________________________________________
batch_normalization_129 (BatchN (None, 61, 61, 32) 96 conv2d_160[0][0]
__________________________________________________________________________________________________
batch_normalization_132 (BatchN (None, 61, 61, 48) 144 conv2d_163[0][0]
__________________________________________________________________________________________________
activation_129 (Activation) (None, 61, 61, 32) 0 batch_normalization_129[0][0]
__________________________________________________________________________________________________
activation_132 (Activation) (None, 61, 61, 48) 0 batch_normalization_132[0][0]
__________________________________________________________________________________________________
conv2d_159 (Conv2D) (None, 61, 61, 32) 10240 block35_3_ac[0][0]
__________________________________________________________________________________________________
conv2d_161 (Conv2D) (None, 61, 61, 32) 9216 activation_129[0][0]
__________________________________________________________________________________________________
conv2d_164 (Conv2D) (None, 61, 61, 64) 27648 activation_132[0][0]
__________________________________________________________________________________________________
batch_normalization_128 (BatchN (None, 61, 61, 32) 96 conv2d_159[0][0]
__________________________________________________________________________________________________
batch_normalization_130 (BatchN (None, 61, 61, 32) 96 conv2d_161[0][0]
__________________________________________________________________________________________________
batch_normalization_133 (BatchN (None, 61, 61, 64) 192 conv2d_164[0][0]
__________________________________________________________________________________________________
activation_128 (Activation) (None, 61, 61, 32) 0 batch_normalization_128[0][0]
__________________________________________________________________________________________________
activation_130 (Activation) (None, 61, 61, 32) 0 batch_normalization_130[0][0]
__________________________________________________________________________________________________
activation_133 (Activation) (None, 61, 61, 64) 0 batch_normalization_133[0][0]
__________________________________________________________________________________________________
block35_4_mixed (Concatenate) (None, 61, 61, 128) 0 activation_128[0][0]
activation_130[0][0]
activation_133[0][0]
__________________________________________________________________________________________________
block35_4_conv (Conv2D) (None, 61, 61, 320) 41280 block35_4_mixed[0][0]
__________________________________________________________________________________________________
block35_4 (Lambda) (None, 61, 61, 320) 0 block35_3_ac[0][0]
block35_4_conv[0][0]
__________________________________________________________________________________________________
block35_4_ac (Activation) (None, 61, 61, 320) 0 block35_4[0][0]
__________________________________________________________________________________________________
conv2d_168 (Conv2D) (None, 61, 61, 32) 10240 block35_4_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_137 (BatchN (None, 61, 61, 32) 96 conv2d_168[0][0]
__________________________________________________________________________________________________
activation_137 (Activation) (None, 61, 61, 32) 0 batch_normalization_137[0][0]
__________________________________________________________________________________________________
conv2d_166 (Conv2D) (None, 61, 61, 32) 10240 block35_4_ac[0][0]
__________________________________________________________________________________________________
conv2d_169 (Conv2D) (None, 61, 61, 48) 13824 activation_137[0][0]
__________________________________________________________________________________________________
batch_normalization_135 (BatchN (None, 61, 61, 32) 96 conv2d_166[0][0]
__________________________________________________________________________________________________
batch_normalization_138 (BatchN (None, 61, 61, 48) 144 conv2d_169[0][0]
__________________________________________________________________________________________________
activation_135 (Activation) (None, 61, 61, 32) 0 batch_normalization_135[0][0]
__________________________________________________________________________________________________
activation_138 (Activation) (None, 61, 61, 48) 0 batch_normalization_138[0][0]
__________________________________________________________________________________________________
conv2d_165 (Conv2D) (None, 61, 61, 32) 10240 block35_4_ac[0][0]
__________________________________________________________________________________________________
conv2d_167 (Conv2D) (None, 61, 61, 32) 9216 activation_135[0][0]
__________________________________________________________________________________________________
conv2d_170 (Conv2D) (None, 61, 61, 64) 27648 activation_138[0][0]
__________________________________________________________________________________________________
batch_normalization_134 (BatchN (None, 61, 61, 32) 96 conv2d_165[0][0]
__________________________________________________________________________________________________
batch_normalization_136 (BatchN (None, 61, 61, 32) 96 conv2d_167[0][0]
__________________________________________________________________________________________________
batch_normalization_139 (BatchN (None, 61, 61, 64) 192 conv2d_170[0][0]
__________________________________________________________________________________________________
activation_134 (Activation) (None, 61, 61, 32) 0 batch_normalization_134[0][0]
__________________________________________________________________________________________________
activation_136 (Activation) (None, 61, 61, 32) 0 batch_normalization_136[0][0]
__________________________________________________________________________________________________
activation_139 (Activation) (None, 61, 61, 64) 0 batch_normalization_139[0][0]
__________________________________________________________________________________________________
block35_5_mixed (Concatenate) (None, 61, 61, 128) 0 activation_134[0][0]
activation_136[0][0]
activation_139[0][0]
__________________________________________________________________________________________________
block35_5_conv (Conv2D) (None, 61, 61, 320) 41280 block35_5_mixed[0][0]
__________________________________________________________________________________________________
block35_5 (Lambda) (None, 61, 61, 320) 0 block35_4_ac[0][0]
block35_5_conv[0][0]
__________________________________________________________________________________________________
block35_5_ac (Activation) (None, 61, 61, 320) 0 block35_5[0][0]
__________________________________________________________________________________________________
conv2d_174 (Conv2D) (None, 61, 61, 32) 10240 block35_5_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_143 (BatchN (None, 61, 61, 32) 96 conv2d_174[0][0]
__________________________________________________________________________________________________
activation_143 (Activation) (None, 61, 61, 32) 0 batch_normalization_143[0][0]
__________________________________________________________________________________________________
conv2d_172 (Conv2D) (None, 61, 61, 32) 10240 block35_5_ac[0][0]
__________________________________________________________________________________________________
conv2d_175 (Conv2D) (None, 61, 61, 48) 13824 activation_143[0][0]
__________________________________________________________________________________________________
batch_normalization_141 (BatchN (None, 61, 61, 32) 96 conv2d_172[0][0]
__________________________________________________________________________________________________
batch_normalization_144 (BatchN (None, 61, 61, 48) 144 conv2d_175[0][0]
__________________________________________________________________________________________________
activation_141 (Activation) (None, 61, 61, 32) 0 batch_normalization_141[0][0]
__________________________________________________________________________________________________
activation_144 (Activation) (None, 61, 61, 48) 0 batch_normalization_144[0][0]
__________________________________________________________________________________________________
conv2d_171 (Conv2D) (None, 61, 61, 32) 10240 block35_5_ac[0][0]
__________________________________________________________________________________________________
conv2d_173 (Conv2D) (None, 61, 61, 32) 9216 activation_141[0][0]
__________________________________________________________________________________________________
conv2d_176 (Conv2D) (None, 61, 61, 64) 27648 activation_144[0][0]
__________________________________________________________________________________________________
batch_normalization_140 (BatchN (None, 61, 61, 32) 96 conv2d_171[0][0]
__________________________________________________________________________________________________
batch_normalization_142 (BatchN (None, 61, 61, 32) 96 conv2d_173[0][0]
__________________________________________________________________________________________________
batch_normalization_145 (BatchN (None, 61, 61, 64) 192 conv2d_176[0][0]
__________________________________________________________________________________________________
activation_140 (Activation) (None, 61, 61, 32) 0 batch_normalization_140[0][0]
__________________________________________________________________________________________________
activation_142 (Activation) (None, 61, 61, 32) 0 batch_normalization_142[0][0]
__________________________________________________________________________________________________
activation_145 (Activation) (None, 61, 61, 64) 0 batch_normalization_145[0][0]
__________________________________________________________________________________________________
block35_6_mixed (Concatenate) (None, 61, 61, 128) 0 activation_140[0][0]
activation_142[0][0]
activation_145[0][0]
__________________________________________________________________________________________________
block35_6_conv (Conv2D) (None, 61, 61, 320) 41280 block35_6_mixed[0][0]
__________________________________________________________________________________________________
block35_6 (Lambda) (None, 61, 61, 320) 0 block35_5_ac[0][0]
block35_6_conv[0][0]
__________________________________________________________________________________________________
block35_6_ac (Activation) (None, 61, 61, 320) 0 block35_6[0][0]
__________________________________________________________________________________________________
conv2d_180 (Conv2D) (None, 61, 61, 32) 10240 block35_6_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_149 (BatchN (None, 61, 61, 32) 96 conv2d_180[0][0]
__________________________________________________________________________________________________
activation_149 (Activation) (None, 61, 61, 32) 0 batch_normalization_149[0][0]
__________________________________________________________________________________________________
conv2d_178 (Conv2D) (None, 61, 61, 32) 10240 block35_6_ac[0][0]
__________________________________________________________________________________________________
conv2d_181 (Conv2D) (None, 61, 61, 48) 13824 activation_149[0][0]
__________________________________________________________________________________________________
batch_normalization_147 (BatchN (None, 61, 61, 32) 96 conv2d_178[0][0]
__________________________________________________________________________________________________
batch_normalization_150 (BatchN (None, 61, 61, 48) 144 conv2d_181[0][0]
__________________________________________________________________________________________________
activation_147 (Activation) (None, 61, 61, 32) 0 batch_normalization_147[0][0]
__________________________________________________________________________________________________
activation_150 (Activation) (None, 61, 61, 48) 0 batch_normalization_150[0][0]
__________________________________________________________________________________________________
conv2d_177 (Conv2D) (None, 61, 61, 32) 10240 block35_6_ac[0][0]
__________________________________________________________________________________________________
conv2d_179 (Conv2D) (None, 61, 61, 32) 9216 activation_147[0][0]
__________________________________________________________________________________________________
conv2d_182 (Conv2D) (None, 61, 61, 64) 27648 activation_150[0][0]
__________________________________________________________________________________________________
batch_normalization_146 (BatchN (None, 61, 61, 32) 96 conv2d_177[0][0]
__________________________________________________________________________________________________
batch_normalization_148 (BatchN (None, 61, 61, 32) 96 conv2d_179[0][0]
__________________________________________________________________________________________________
batch_normalization_151 (BatchN (None, 61, 61, 64) 192 conv2d_182[0][0]
__________________________________________________________________________________________________
activation_146 (Activation) (None, 61, 61, 32) 0 batch_normalization_146[0][0]
__________________________________________________________________________________________________
activation_148 (Activation) (None, 61, 61, 32) 0 batch_normalization_148[0][0]
__________________________________________________________________________________________________
activation_151 (Activation) (None, 61, 61, 64) 0 batch_normalization_151[0][0]
__________________________________________________________________________________________________
block35_7_mixed (Concatenate) (None, 61, 61, 128) 0 activation_146[0][0]
activation_148[0][0]
activation_151[0][0]
__________________________________________________________________________________________________
block35_7_conv (Conv2D) (None, 61, 61, 320) 41280 block35_7_mixed[0][0]
__________________________________________________________________________________________________
block35_7 (Lambda) (None, 61, 61, 320) 0 block35_6_ac[0][0]
block35_7_conv[0][0]
__________________________________________________________________________________________________
block35_7_ac (Activation) (None, 61, 61, 320) 0 block35_7[0][0]
__________________________________________________________________________________________________
conv2d_186 (Conv2D) (None, 61, 61, 32) 10240 block35_7_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_155 (BatchN (None, 61, 61, 32) 96 conv2d_186[0][0]
__________________________________________________________________________________________________
activation_155 (Activation) (None, 61, 61, 32) 0 batch_normalization_155[0][0]
__________________________________________________________________________________________________
conv2d_184 (Conv2D) (None, 61, 61, 32) 10240 block35_7_ac[0][0]
__________________________________________________________________________________________________
conv2d_187 (Conv2D) (None, 61, 61, 48) 13824 activation_155[0][0]
__________________________________________________________________________________________________
batch_normalization_153 (BatchN (None, 61, 61, 32) 96 conv2d_184[0][0]
__________________________________________________________________________________________________
batch_normalization_156 (BatchN (None, 61, 61, 48) 144 conv2d_187[0][0]
__________________________________________________________________________________________________
activation_153 (Activation) (None, 61, 61, 32) 0 batch_normalization_153[0][0]
__________________________________________________________________________________________________
activation_156 (Activation) (None, 61, 61, 48) 0 batch_normalization_156[0][0]
__________________________________________________________________________________________________
conv2d_183 (Conv2D) (None, 61, 61, 32) 10240 block35_7_ac[0][0]
__________________________________________________________________________________________________
conv2d_185 (Conv2D) (None, 61, 61, 32) 9216 activation_153[0][0]
__________________________________________________________________________________________________
conv2d_188 (Conv2D) (None, 61, 61, 64) 27648 activation_156[0][0]
__________________________________________________________________________________________________
batch_normalization_152 (BatchN (None, 61, 61, 32) 96 conv2d_183[0][0]
__________________________________________________________________________________________________
batch_normalization_154 (BatchN (None, 61, 61, 32) 96 conv2d_185[0][0]
__________________________________________________________________________________________________
batch_normalization_157 (BatchN (None, 61, 61, 64) 192 conv2d_188[0][0]
__________________________________________________________________________________________________
activation_152 (Activation) (None, 61, 61, 32) 0 batch_normalization_152[0][0]
__________________________________________________________________________________________________
activation_154 (Activation) (None, 61, 61, 32) 0 batch_normalization_154[0][0]
__________________________________________________________________________________________________
activation_157 (Activation) (None, 61, 61, 64) 0 batch_normalization_157[0][0]
__________________________________________________________________________________________________
block35_8_mixed (Concatenate) (None, 61, 61, 128) 0 activation_152[0][0]
activation_154[0][0]
activation_157[0][0]
__________________________________________________________________________________________________
block35_8_conv (Conv2D) (None, 61, 61, 320) 41280 block35_8_mixed[0][0]
__________________________________________________________________________________________________
block35_8 (Lambda) (None, 61, 61, 320) 0 block35_7_ac[0][0]
block35_8_conv[0][0]
__________________________________________________________________________________________________
block35_8_ac (Activation) (None, 61, 61, 320) 0 block35_8[0][0]
__________________________________________________________________________________________________
conv2d_192 (Conv2D) (None, 61, 61, 32) 10240 block35_8_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_161 (BatchN (None, 61, 61, 32) 96 conv2d_192[0][0]
__________________________________________________________________________________________________
activation_161 (Activation) (None, 61, 61, 32) 0 batch_normalization_161[0][0]
__________________________________________________________________________________________________
conv2d_190 (Conv2D) (None, 61, 61, 32) 10240 block35_8_ac[0][0]
__________________________________________________________________________________________________
conv2d_193 (Conv2D) (None, 61, 61, 48) 13824 activation_161[0][0]
__________________________________________________________________________________________________
batch_normalization_159 (BatchN (None, 61, 61, 32) 96 conv2d_190[0][0]
__________________________________________________________________________________________________
batch_normalization_162 (BatchN (None, 61, 61, 48) 144 conv2d_193[0][0]
__________________________________________________________________________________________________
activation_159 (Activation) (None, 61, 61, 32) 0 batch_normalization_159[0][0]
__________________________________________________________________________________________________
activation_162 (Activation) (None, 61, 61, 48) 0 batch_normalization_162[0][0]
__________________________________________________________________________________________________
conv2d_189 (Conv2D) (None, 61, 61, 32) 10240 block35_8_ac[0][0]
__________________________________________________________________________________________________
conv2d_191 (Conv2D) (None, 61, 61, 32) 9216 activation_159[0][0]
__________________________________________________________________________________________________
conv2d_194 (Conv2D) (None, 61, 61, 64) 27648 activation_162[0][0]
__________________________________________________________________________________________________
batch_normalization_158 (BatchN (None, 61, 61, 32) 96 conv2d_189[0][0]
__________________________________________________________________________________________________
batch_normalization_160 (BatchN (None, 61, 61, 32) 96 conv2d_191[0][0]
__________________________________________________________________________________________________
batch_normalization_163 (BatchN (None, 61, 61, 64) 192 conv2d_194[0][0]
__________________________________________________________________________________________________
activation_158 (Activation) (None, 61, 61, 32) 0 batch_normalization_158[0][0]
__________________________________________________________________________________________________
activation_160 (Activation) (None, 61, 61, 32) 0 batch_normalization_160[0][0]
__________________________________________________________________________________________________
activation_163 (Activation) (None, 61, 61, 64) 0 batch_normalization_163[0][0]
__________________________________________________________________________________________________
block35_9_mixed (Concatenate) (None, 61, 61, 128) 0 activation_158[0][0]
activation_160[0][0]
activation_163[0][0]
__________________________________________________________________________________________________
block35_9_conv (Conv2D) (None, 61, 61, 320) 41280 block35_9_mixed[0][0]
__________________________________________________________________________________________________
block35_9 (Lambda) (None, 61, 61, 320) 0 block35_8_ac[0][0]
block35_9_conv[0][0]
__________________________________________________________________________________________________
block35_9_ac (Activation) (None, 61, 61, 320) 0 block35_9[0][0]
__________________________________________________________________________________________________
conv2d_198 (Conv2D) (None, 61, 61, 32) 10240 block35_9_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_167 (BatchN (None, 61, 61, 32) 96 conv2d_198[0][0]
__________________________________________________________________________________________________
activation_167 (Activation) (None, 61, 61, 32) 0 batch_normalization_167[0][0]
__________________________________________________________________________________________________
conv2d_196 (Conv2D) (None, 61, 61, 32) 10240 block35_9_ac[0][0]
__________________________________________________________________________________________________
conv2d_199 (Conv2D) (None, 61, 61, 48) 13824 activation_167[0][0]
__________________________________________________________________________________________________
batch_normalization_165 (BatchN (None, 61, 61, 32) 96 conv2d_196[0][0]
__________________________________________________________________________________________________
batch_normalization_168 (BatchN (None, 61, 61, 48) 144 conv2d_199[0][0]
__________________________________________________________________________________________________
activation_165 (Activation) (None, 61, 61, 32) 0 batch_normalization_165[0][0]
__________________________________________________________________________________________________
activation_168 (Activation) (None, 61, 61, 48) 0 batch_normalization_168[0][0]
__________________________________________________________________________________________________
conv2d_195 (Conv2D) (None, 61, 61, 32) 10240 block35_9_ac[0][0]
__________________________________________________________________________________________________
conv2d_197 (Conv2D) (None, 61, 61, 32) 9216 activation_165[0][0]
__________________________________________________________________________________________________
conv2d_200 (Conv2D) (None, 61, 61, 64) 27648 activation_168[0][0]
__________________________________________________________________________________________________
batch_normalization_164 (BatchN (None, 61, 61, 32) 96 conv2d_195[0][0]
__________________________________________________________________________________________________
batch_normalization_166 (BatchN (None, 61, 61, 32) 96 conv2d_197[0][0]
__________________________________________________________________________________________________
batch_normalization_169 (BatchN (None, 61, 61, 64) 192 conv2d_200[0][0]
__________________________________________________________________________________________________
activation_164 (Activation) (None, 61, 61, 32) 0 batch_normalization_164[0][0]
__________________________________________________________________________________________________
activation_166 (Activation) (None, 61, 61, 32) 0 batch_normalization_166[0][0]
__________________________________________________________________________________________________
activation_169 (Activation) (None, 61, 61, 64) 0 batch_normalization_169[0][0]
__________________________________________________________________________________________________
block35_10_mixed (Concatenate) (None, 61, 61, 128) 0 activation_164[0][0]
activation_166[0][0]
activation_169[0][0]
__________________________________________________________________________________________________
block35_10_conv (Conv2D) (None, 61, 61, 320) 41280 block35_10_mixed[0][0]
__________________________________________________________________________________________________
block35_10 (Lambda) (None, 61, 61, 320) 0 block35_9_ac[0][0]
block35_10_conv[0][0]
__________________________________________________________________________________________________
block35_10_ac (Activation) (None, 61, 61, 320) 0 block35_10[0][0]
__________________________________________________________________________________________________
conv2d_202 (Conv2D) (None, 61, 61, 256) 81920 block35_10_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_171 (BatchN (None, 61, 61, 256) 768 conv2d_202[0][0]
__________________________________________________________________________________________________
activation_171 (Activation) (None, 61, 61, 256) 0 batch_normalization_171[0][0]
__________________________________________________________________________________________________
conv2d_203 (Conv2D) (None, 61, 61, 256) 589824 activation_171[0][0]
__________________________________________________________________________________________________
batch_normalization_172 (BatchN (None, 61, 61, 256) 768 conv2d_203[0][0]
__________________________________________________________________________________________________
activation_172 (Activation) (None, 61, 61, 256) 0 batch_normalization_172[0][0]
__________________________________________________________________________________________________
conv2d_201 (Conv2D) (None, 30, 30, 384) 1105920 block35_10_ac[0][0]
__________________________________________________________________________________________________
conv2d_204 (Conv2D) (None, 30, 30, 384) 884736 activation_172[0][0]
__________________________________________________________________________________________________
batch_normalization_170 (BatchN (None, 30, 30, 384) 1152 conv2d_201[0][0]
__________________________________________________________________________________________________
batch_normalization_173 (BatchN (None, 30, 30, 384) 1152 conv2d_204[0][0]
__________________________________________________________________________________________________
activation_170 (Activation) (None, 30, 30, 384) 0 batch_normalization_170[0][0]
__________________________________________________________________________________________________
activation_173 (Activation) (None, 30, 30, 384) 0 batch_normalization_173[0][0]
__________________________________________________________________________________________________
max_pooling2d_16 (MaxPooling2D) (None, 30, 30, 320) 0 block35_10_ac[0][0]
__________________________________________________________________________________________________
mixed_6a (Concatenate) (None, 30, 30, 1088) 0 activation_170[0][0]
activation_173[0][0]
max_pooling2d_16[0][0]
__________________________________________________________________________________________________
conv2d_206 (Conv2D) (None, 30, 30, 128) 139264 mixed_6a[0][0]
__________________________________________________________________________________________________
batch_normalization_175 (BatchN (None, 30, 30, 128) 384 conv2d_206[0][0]
__________________________________________________________________________________________________
activation_175 (Activation) (None, 30, 30, 128) 0 batch_normalization_175[0][0]
__________________________________________________________________________________________________
conv2d_207 (Conv2D) (None, 30, 30, 160) 143360 activation_175[0][0]
__________________________________________________________________________________________________
batch_normalization_176 (BatchN (None, 30, 30, 160) 480 conv2d_207[0][0]
__________________________________________________________________________________________________
activation_176 (Activation) (None, 30, 30, 160) 0 batch_normalization_176[0][0]
__________________________________________________________________________________________________
conv2d_205 (Conv2D) (None, 30, 30, 192) 208896 mixed_6a[0][0]
__________________________________________________________________________________________________
conv2d_208 (Conv2D) (None, 30, 30, 192) 215040 activation_176[0][0]
__________________________________________________________________________________________________
batch_normalization_174 (BatchN (None, 30, 30, 192) 576 conv2d_205[0][0]
__________________________________________________________________________________________________
batch_normalization_177 (BatchN (None, 30, 30, 192) 576 conv2d_208[0][0]
__________________________________________________________________________________________________
activation_174 (Activation) (None, 30, 30, 192) 0 batch_normalization_174[0][0]
__________________________________________________________________________________________________
activation_177 (Activation) (None, 30, 30, 192) 0 batch_normalization_177[0][0]
__________________________________________________________________________________________________
block17_1_mixed (Concatenate) (None, 30, 30, 384) 0 activation_174[0][0]
activation_177[0][0]
__________________________________________________________________________________________________
block17_1_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_1_mixed[0][0]
__________________________________________________________________________________________________
block17_1 (Lambda) (None, 30, 30, 1088) 0 mixed_6a[0][0]
block17_1_conv[0][0]
__________________________________________________________________________________________________
block17_1_ac (Activation) (None, 30, 30, 1088) 0 block17_1[0][0]
__________________________________________________________________________________________________
conv2d_210 (Conv2D) (None, 30, 30, 128) 139264 block17_1_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_179 (BatchN (None, 30, 30, 128) 384 conv2d_210[0][0]
__________________________________________________________________________________________________
activation_179 (Activation) (None, 30, 30, 128) 0 batch_normalization_179[0][0]
__________________________________________________________________________________________________
conv2d_211 (Conv2D) (None, 30, 30, 160) 143360 activation_179[0][0]
__________________________________________________________________________________________________
batch_normalization_180 (BatchN (None, 30, 30, 160) 480 conv2d_211[0][0]
__________________________________________________________________________________________________
activation_180 (Activation) (None, 30, 30, 160) 0 batch_normalization_180[0][0]
__________________________________________________________________________________________________
conv2d_209 (Conv2D) (None, 30, 30, 192) 208896 block17_1_ac[0][0]
__________________________________________________________________________________________________
conv2d_212 (Conv2D) (None, 30, 30, 192) 215040 activation_180[0][0]
__________________________________________________________________________________________________
batch_normalization_178 (BatchN (None, 30, 30, 192) 576 conv2d_209[0][0]
__________________________________________________________________________________________________
batch_normalization_181 (BatchN (None, 30, 30, 192) 576 conv2d_212[0][0]
__________________________________________________________________________________________________
activation_178 (Activation) (None, 30, 30, 192) 0 batch_normalization_178[0][0]
__________________________________________________________________________________________________
activation_181 (Activation) (None, 30, 30, 192) 0 batch_normalization_181[0][0]
__________________________________________________________________________________________________
block17_2_mixed (Concatenate) (None, 30, 30, 384) 0 activation_178[0][0]
activation_181[0][0]
__________________________________________________________________________________________________
block17_2_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_2_mixed[0][0]
__________________________________________________________________________________________________
block17_2 (Lambda) (None, 30, 30, 1088) 0 block17_1_ac[0][0]
block17_2_conv[0][0]
__________________________________________________________________________________________________
block17_2_ac (Activation) (None, 30, 30, 1088) 0 block17_2[0][0]
__________________________________________________________________________________________________
conv2d_214 (Conv2D) (None, 30, 30, 128) 139264 block17_2_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_183 (BatchN (None, 30, 30, 128) 384 conv2d_214[0][0]
__________________________________________________________________________________________________
activation_183 (Activation) (None, 30, 30, 128) 0 batch_normalization_183[0][0]
__________________________________________________________________________________________________
conv2d_215 (Conv2D) (None, 30, 30, 160) 143360 activation_183[0][0]
__________________________________________________________________________________________________
batch_normalization_184 (BatchN (None, 30, 30, 160) 480 conv2d_215[0][0]
__________________________________________________________________________________________________
activation_184 (Activation) (None, 30, 30, 160) 0 batch_normalization_184[0][0]
__________________________________________________________________________________________________
conv2d_213 (Conv2D) (None, 30, 30, 192) 208896 block17_2_ac[0][0]
__________________________________________________________________________________________________
conv2d_216 (Conv2D) (None, 30, 30, 192) 215040 activation_184[0][0]
__________________________________________________________________________________________________
batch_normalization_182 (BatchN (None, 30, 30, 192) 576 conv2d_213[0][0]
__________________________________________________________________________________________________
batch_normalization_185 (BatchN (None, 30, 30, 192) 576 conv2d_216[0][0]
__________________________________________________________________________________________________
activation_182 (Activation) (None, 30, 30, 192) 0 batch_normalization_182[0][0]
__________________________________________________________________________________________________
activation_185 (Activation) (None, 30, 30, 192) 0 batch_normalization_185[0][0]
__________________________________________________________________________________________________
block17_3_mixed (Concatenate) (None, 30, 30, 384) 0 activation_182[0][0]
activation_185[0][0]
__________________________________________________________________________________________________
block17_3_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_3_mixed[0][0]
__________________________________________________________________________________________________
block17_3 (Lambda) (None, 30, 30, 1088) 0 block17_2_ac[0][0]
block17_3_conv[0][0]
__________________________________________________________________________________________________
block17_3_ac (Activation) (None, 30, 30, 1088) 0 block17_3[0][0]
__________________________________________________________________________________________________
conv2d_218 (Conv2D) (None, 30, 30, 128) 139264 block17_3_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_187 (BatchN (None, 30, 30, 128) 384 conv2d_218[0][0]
__________________________________________________________________________________________________
activation_187 (Activation) (None, 30, 30, 128) 0 batch_normalization_187[0][0]
__________________________________________________________________________________________________
conv2d_219 (Conv2D) (None, 30, 30, 160) 143360 activation_187[0][0]
__________________________________________________________________________________________________
batch_normalization_188 (BatchN (None, 30, 30, 160) 480 conv2d_219[0][0]
__________________________________________________________________________________________________
activation_188 (Activation) (None, 30, 30, 160) 0 batch_normalization_188[0][0]
__________________________________________________________________________________________________
conv2d_217 (Conv2D) (None, 30, 30, 192) 208896 block17_3_ac[0][0]
__________________________________________________________________________________________________
conv2d_220 (Conv2D) (None, 30, 30, 192) 215040 activation_188[0][0]
__________________________________________________________________________________________________
batch_normalization_186 (BatchN (None, 30, 30, 192) 576 conv2d_217[0][0]
__________________________________________________________________________________________________
batch_normalization_189 (BatchN (None, 30, 30, 192) 576 conv2d_220[0][0]
__________________________________________________________________________________________________
activation_186 (Activation) (None, 30, 30, 192) 0 batch_normalization_186[0][0]
__________________________________________________________________________________________________
activation_189 (Activation) (None, 30, 30, 192) 0 batch_normalization_189[0][0]
__________________________________________________________________________________________________
block17_4_mixed (Concatenate) (None, 30, 30, 384) 0 activation_186[0][0]
activation_189[0][0]
__________________________________________________________________________________________________
block17_4_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_4_mixed[0][0]
__________________________________________________________________________________________________
block17_4 (Lambda) (None, 30, 30, 1088) 0 block17_3_ac[0][0]
block17_4_conv[0][0]
__________________________________________________________________________________________________
block17_4_ac (Activation) (None, 30, 30, 1088) 0 block17_4[0][0]
__________________________________________________________________________________________________
conv2d_222 (Conv2D) (None, 30, 30, 128) 139264 block17_4_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_191 (BatchN (None, 30, 30, 128) 384 conv2d_222[0][0]
__________________________________________________________________________________________________
activation_191 (Activation) (None, 30, 30, 128) 0 batch_normalization_191[0][0]
__________________________________________________________________________________________________
conv2d_223 (Conv2D) (None, 30, 30, 160) 143360 activation_191[0][0]
__________________________________________________________________________________________________
batch_normalization_192 (BatchN (None, 30, 30, 160) 480 conv2d_223[0][0]
__________________________________________________________________________________________________
activation_192 (Activation) (None, 30, 30, 160) 0 batch_normalization_192[0][0]
__________________________________________________________________________________________________
conv2d_221 (Conv2D) (None, 30, 30, 192) 208896 block17_4_ac[0][0]
__________________________________________________________________________________________________
conv2d_224 (Conv2D) (None, 30, 30, 192) 215040 activation_192[0][0]
__________________________________________________________________________________________________
batch_normalization_190 (BatchN (None, 30, 30, 192) 576 conv2d_221[0][0]
__________________________________________________________________________________________________
batch_normalization_193 (BatchN (None, 30, 30, 192) 576 conv2d_224[0][0]
__________________________________________________________________________________________________
activation_190 (Activation) (None, 30, 30, 192) 0 batch_normalization_190[0][0]
__________________________________________________________________________________________________
activation_193 (Activation) (None, 30, 30, 192) 0 batch_normalization_193[0][0]
__________________________________________________________________________________________________
block17_5_mixed (Concatenate) (None, 30, 30, 384) 0 activation_190[0][0]
activation_193[0][0]
__________________________________________________________________________________________________
block17_5_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_5_mixed[0][0]
__________________________________________________________________________________________________
block17_5 (Lambda) (None, 30, 30, 1088) 0 block17_4_ac[0][0]
block17_5_conv[0][0]
__________________________________________________________________________________________________
block17_5_ac (Activation) (None, 30, 30, 1088) 0 block17_5[0][0]
__________________________________________________________________________________________________
conv2d_226 (Conv2D) (None, 30, 30, 128) 139264 block17_5_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_195 (BatchN (None, 30, 30, 128) 384 conv2d_226[0][0]
__________________________________________________________________________________________________
activation_195 (Activation) (None, 30, 30, 128) 0 batch_normalization_195[0][0]
__________________________________________________________________________________________________
conv2d_227 (Conv2D) (None, 30, 30, 160) 143360 activation_195[0][0]
__________________________________________________________________________________________________
batch_normalization_196 (BatchN (None, 30, 30, 160) 480 conv2d_227[0][0]
__________________________________________________________________________________________________
activation_196 (Activation) (None, 30, 30, 160) 0 batch_normalization_196[0][0]
__________________________________________________________________________________________________
conv2d_225 (Conv2D) (None, 30, 30, 192) 208896 block17_5_ac[0][0]
__________________________________________________________________________________________________
conv2d_228 (Conv2D) (None, 30, 30, 192) 215040 activation_196[0][0]
__________________________________________________________________________________________________
batch_normalization_194 (BatchN (None, 30, 30, 192) 576 conv2d_225[0][0]
__________________________________________________________________________________________________
batch_normalization_197 (BatchN (None, 30, 30, 192) 576 conv2d_228[0][0]
__________________________________________________________________________________________________
activation_194 (Activation) (None, 30, 30, 192) 0 batch_normalization_194[0][0]
__________________________________________________________________________________________________
activation_197 (Activation) (None, 30, 30, 192) 0 batch_normalization_197[0][0]
__________________________________________________________________________________________________
block17_6_mixed (Concatenate) (None, 30, 30, 384) 0 activation_194[0][0]
activation_197[0][0]
__________________________________________________________________________________________________
block17_6_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_6_mixed[0][0]
__________________________________________________________________________________________________
block17_6 (Lambda) (None, 30, 30, 1088) 0 block17_5_ac[0][0]
block17_6_conv[0][0]
__________________________________________________________________________________________________
block17_6_ac (Activation) (None, 30, 30, 1088) 0 block17_6[0][0]
__________________________________________________________________________________________________
conv2d_230 (Conv2D) (None, 30, 30, 128) 139264 block17_6_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_199 (BatchN (None, 30, 30, 128) 384 conv2d_230[0][0]
__________________________________________________________________________________________________
activation_199 (Activation) (None, 30, 30, 128) 0 batch_normalization_199[0][0]
__________________________________________________________________________________________________
conv2d_231 (Conv2D) (None, 30, 30, 160) 143360 activation_199[0][0]
__________________________________________________________________________________________________
batch_normalization_200 (BatchN (None, 30, 30, 160) 480 conv2d_231[0][0]
__________________________________________________________________________________________________
activation_200 (Activation) (None, 30, 30, 160) 0 batch_normalization_200[0][0]
__________________________________________________________________________________________________
conv2d_229 (Conv2D) (None, 30, 30, 192) 208896 block17_6_ac[0][0]
__________________________________________________________________________________________________
conv2d_232 (Conv2D) (None, 30, 30, 192) 215040 activation_200[0][0]
__________________________________________________________________________________________________
batch_normalization_198 (BatchN (None, 30, 30, 192) 576 conv2d_229[0][0]
__________________________________________________________________________________________________
batch_normalization_201 (BatchN (None, 30, 30, 192) 576 conv2d_232[0][0]
__________________________________________________________________________________________________
activation_198 (Activation) (None, 30, 30, 192) 0 batch_normalization_198[0][0]
__________________________________________________________________________________________________
activation_201 (Activation) (None, 30, 30, 192) 0 batch_normalization_201[0][0]
__________________________________________________________________________________________________
block17_7_mixed (Concatenate) (None, 30, 30, 384) 0 activation_198[0][0]
activation_201[0][0]
__________________________________________________________________________________________________
block17_7_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_7_mixed[0][0]
__________________________________________________________________________________________________
block17_7 (Lambda) (None, 30, 30, 1088) 0 block17_6_ac[0][0]
block17_7_conv[0][0]
__________________________________________________________________________________________________
block17_7_ac (Activation) (None, 30, 30, 1088) 0 block17_7[0][0]
__________________________________________________________________________________________________
conv2d_234 (Conv2D) (None, 30, 30, 128) 139264 block17_7_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_203 (BatchN (None, 30, 30, 128) 384 conv2d_234[0][0]
__________________________________________________________________________________________________
activation_203 (Activation) (None, 30, 30, 128) 0 batch_normalization_203[0][0]
__________________________________________________________________________________________________
conv2d_235 (Conv2D) (None, 30, 30, 160) 143360 activation_203[0][0]
__________________________________________________________________________________________________
batch_normalization_204 (BatchN (None, 30, 30, 160) 480 conv2d_235[0][0]
__________________________________________________________________________________________________
activation_204 (Activation) (None, 30, 30, 160) 0 batch_normalization_204[0][0]
__________________________________________________________________________________________________
conv2d_233 (Conv2D) (None, 30, 30, 192) 208896 block17_7_ac[0][0]
__________________________________________________________________________________________________
conv2d_236 (Conv2D) (None, 30, 30, 192) 215040 activation_204[0][0]
__________________________________________________________________________________________________
batch_normalization_202 (BatchN (None, 30, 30, 192) 576 conv2d_233[0][0]
__________________________________________________________________________________________________
batch_normalization_205 (BatchN (None, 30, 30, 192) 576 conv2d_236[0][0]
__________________________________________________________________________________________________
activation_202 (Activation) (None, 30, 30, 192) 0 batch_normalization_202[0][0]
__________________________________________________________________________________________________
activation_205 (Activation) (None, 30, 30, 192) 0 batch_normalization_205[0][0]
__________________________________________________________________________________________________
block17_8_mixed (Concatenate) (None, 30, 30, 384) 0 activation_202[0][0]
activation_205[0][0]
__________________________________________________________________________________________________
block17_8_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_8_mixed[0][0]
__________________________________________________________________________________________________
block17_8 (Lambda) (None, 30, 30, 1088) 0 block17_7_ac[0][0]
block17_8_conv[0][0]
__________________________________________________________________________________________________
block17_8_ac (Activation) (None, 30, 30, 1088) 0 block17_8[0][0]
__________________________________________________________________________________________________
conv2d_238 (Conv2D) (None, 30, 30, 128) 139264 block17_8_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_207 (BatchN (None, 30, 30, 128) 384 conv2d_238[0][0]
__________________________________________________________________________________________________
activation_207 (Activation) (None, 30, 30, 128) 0 batch_normalization_207[0][0]
__________________________________________________________________________________________________
conv2d_239 (Conv2D) (None, 30, 30, 160) 143360 activation_207[0][0]
__________________________________________________________________________________________________
batch_normalization_208 (BatchN (None, 30, 30, 160) 480 conv2d_239[0][0]
__________________________________________________________________________________________________
activation_208 (Activation) (None, 30, 30, 160) 0 batch_normalization_208[0][0]
__________________________________________________________________________________________________
conv2d_237 (Conv2D) (None, 30, 30, 192) 208896 block17_8_ac[0][0]
__________________________________________________________________________________________________
conv2d_240 (Conv2D) (None, 30, 30, 192) 215040 activation_208[0][0]
__________________________________________________________________________________________________
batch_normalization_206 (BatchN (None, 30, 30, 192) 576 conv2d_237[0][0]
__________________________________________________________________________________________________
batch_normalization_209 (BatchN (None, 30, 30, 192) 576 conv2d_240[0][0]
__________________________________________________________________________________________________
activation_206 (Activation) (None, 30, 30, 192) 0 batch_normalization_206[0][0]
__________________________________________________________________________________________________
activation_209 (Activation) (None, 30, 30, 192) 0 batch_normalization_209[0][0]
__________________________________________________________________________________________________
block17_9_mixed (Concatenate) (None, 30, 30, 384) 0 activation_206[0][0]
activation_209[0][0]
__________________________________________________________________________________________________
block17_9_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_9_mixed[0][0]
__________________________________________________________________________________________________
block17_9 (Lambda) (None, 30, 30, 1088) 0 block17_8_ac[0][0]
block17_9_conv[0][0]
__________________________________________________________________________________________________
block17_9_ac (Activation) (None, 30, 30, 1088) 0 block17_9[0][0]
__________________________________________________________________________________________________
conv2d_242 (Conv2D) (None, 30, 30, 128) 139264 block17_9_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_211 (BatchN (None, 30, 30, 128) 384 conv2d_242[0][0]
__________________________________________________________________________________________________
activation_211 (Activation) (None, 30, 30, 128) 0 batch_normalization_211[0][0]
__________________________________________________________________________________________________
conv2d_243 (Conv2D) (None, 30, 30, 160) 143360 activation_211[0][0]
__________________________________________________________________________________________________
batch_normalization_212 (BatchN (None, 30, 30, 160) 480 conv2d_243[0][0]
__________________________________________________________________________________________________
activation_212 (Activation) (None, 30, 30, 160) 0 batch_normalization_212[0][0]
__________________________________________________________________________________________________
conv2d_241 (Conv2D) (None, 30, 30, 192) 208896 block17_9_ac[0][0]
__________________________________________________________________________________________________
conv2d_244 (Conv2D) (None, 30, 30, 192) 215040 activation_212[0][0]
__________________________________________________________________________________________________
batch_normalization_210 (BatchN (None, 30, 30, 192) 576 conv2d_241[0][0]
__________________________________________________________________________________________________
batch_normalization_213 (BatchN (None, 30, 30, 192) 576 conv2d_244[0][0]
__________________________________________________________________________________________________
activation_210 (Activation) (None, 30, 30, 192) 0 batch_normalization_210[0][0]
__________________________________________________________________________________________________
activation_213 (Activation) (None, 30, 30, 192) 0 batch_normalization_213[0][0]
__________________________________________________________________________________________________
block17_10_mixed (Concatenate) (None, 30, 30, 384) 0 activation_210[0][0]
activation_213[0][0]
__________________________________________________________________________________________________
block17_10_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_10_mixed[0][0]
__________________________________________________________________________________________________
block17_10 (Lambda) (None, 30, 30, 1088) 0 block17_9_ac[0][0]
block17_10_conv[0][0]
__________________________________________________________________________________________________
block17_10_ac (Activation) (None, 30, 30, 1088) 0 block17_10[0][0]
__________________________________________________________________________________________________
conv2d_246 (Conv2D) (None, 30, 30, 128) 139264 block17_10_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_215 (BatchN (None, 30, 30, 128) 384 conv2d_246[0][0]
__________________________________________________________________________________________________
activation_215 (Activation) (None, 30, 30, 128) 0 batch_normalization_215[0][0]
__________________________________________________________________________________________________
conv2d_247 (Conv2D) (None, 30, 30, 160) 143360 activation_215[0][0]
__________________________________________________________________________________________________
batch_normalization_216 (BatchN (None, 30, 30, 160) 480 conv2d_247[0][0]
__________________________________________________________________________________________________
activation_216 (Activation) (None, 30, 30, 160) 0 batch_normalization_216[0][0]
__________________________________________________________________________________________________
conv2d_245 (Conv2D) (None, 30, 30, 192) 208896 block17_10_ac[0][0]
__________________________________________________________________________________________________
conv2d_248 (Conv2D) (None, 30, 30, 192) 215040 activation_216[0][0]
__________________________________________________________________________________________________
batch_normalization_214 (BatchN (None, 30, 30, 192) 576 conv2d_245[0][0]
__________________________________________________________________________________________________
batch_normalization_217 (BatchN (None, 30, 30, 192) 576 conv2d_248[0][0]
__________________________________________________________________________________________________
activation_214 (Activation) (None, 30, 30, 192) 0 batch_normalization_214[0][0]
__________________________________________________________________________________________________
activation_217 (Activation) (None, 30, 30, 192) 0 batch_normalization_217[0][0]
__________________________________________________________________________________________________
block17_11_mixed (Concatenate) (None, 30, 30, 384) 0 activation_214[0][0]
activation_217[0][0]
__________________________________________________________________________________________________
block17_11_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_11_mixed[0][0]
__________________________________________________________________________________________________
block17_11 (Lambda) (None, 30, 30, 1088) 0 block17_10_ac[0][0]
block17_11_conv[0][0]
__________________________________________________________________________________________________
block17_11_ac (Activation) (None, 30, 30, 1088) 0 block17_11[0][0]
__________________________________________________________________________________________________
conv2d_250 (Conv2D) (None, 30, 30, 128) 139264 block17_11_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_219 (BatchN (None, 30, 30, 128) 384 conv2d_250[0][0]
__________________________________________________________________________________________________
activation_219 (Activation) (None, 30, 30, 128) 0 batch_normalization_219[0][0]
__________________________________________________________________________________________________
conv2d_251 (Conv2D) (None, 30, 30, 160) 143360 activation_219[0][0]
__________________________________________________________________________________________________
batch_normalization_220 (BatchN (None, 30, 30, 160) 480 conv2d_251[0][0]
__________________________________________________________________________________________________
activation_220 (Activation) (None, 30, 30, 160) 0 batch_normalization_220[0][0]
__________________________________________________________________________________________________
conv2d_249 (Conv2D) (None, 30, 30, 192) 208896 block17_11_ac[0][0]
__________________________________________________________________________________________________
conv2d_252 (Conv2D) (None, 30, 30, 192) 215040 activation_220[0][0]
__________________________________________________________________________________________________
batch_normalization_218 (BatchN (None, 30, 30, 192) 576 conv2d_249[0][0]
__________________________________________________________________________________________________
batch_normalization_221 (BatchN (None, 30, 30, 192) 576 conv2d_252[0][0]
__________________________________________________________________________________________________
activation_218 (Activation) (None, 30, 30, 192) 0 batch_normalization_218[0][0]
__________________________________________________________________________________________________
activation_221 (Activation) (None, 30, 30, 192) 0 batch_normalization_221[0][0]
__________________________________________________________________________________________________
block17_12_mixed (Concatenate) (None, 30, 30, 384) 0 activation_218[0][0]
activation_221[0][0]
__________________________________________________________________________________________________
block17_12_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_12_mixed[0][0]
__________________________________________________________________________________________________
block17_12 (Lambda) (None, 30, 30, 1088) 0 block17_11_ac[0][0]
block17_12_conv[0][0]
__________________________________________________________________________________________________
block17_12_ac (Activation) (None, 30, 30, 1088) 0 block17_12[0][0]
__________________________________________________________________________________________________
conv2d_254 (Conv2D) (None, 30, 30, 128) 139264 block17_12_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_223 (BatchN (None, 30, 30, 128) 384 conv2d_254[0][0]
__________________________________________________________________________________________________
activation_223 (Activation) (None, 30, 30, 128) 0 batch_normalization_223[0][0]
__________________________________________________________________________________________________
conv2d_255 (Conv2D) (None, 30, 30, 160) 143360 activation_223[0][0]
__________________________________________________________________________________________________
batch_normalization_224 (BatchN (None, 30, 30, 160) 480 conv2d_255[0][0]
__________________________________________________________________________________________________
activation_224 (Activation) (None, 30, 30, 160) 0 batch_normalization_224[0][0]
__________________________________________________________________________________________________
conv2d_253 (Conv2D) (None, 30, 30, 192) 208896 block17_12_ac[0][0]
__________________________________________________________________________________________________
conv2d_256 (Conv2D) (None, 30, 30, 192) 215040 activation_224[0][0]
__________________________________________________________________________________________________
batch_normalization_222 (BatchN (None, 30, 30, 192) 576 conv2d_253[0][0]
__________________________________________________________________________________________________
batch_normalization_225 (BatchN (None, 30, 30, 192) 576 conv2d_256[0][0]
__________________________________________________________________________________________________
activation_222 (Activation) (None, 30, 30, 192) 0 batch_normalization_222[0][0]
__________________________________________________________________________________________________
activation_225 (Activation) (None, 30, 30, 192) 0 batch_normalization_225[0][0]
__________________________________________________________________________________________________
block17_13_mixed (Concatenate) (None, 30, 30, 384) 0 activation_222[0][0]
activation_225[0][0]
__________________________________________________________________________________________________
block17_13_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_13_mixed[0][0]
__________________________________________________________________________________________________
block17_13 (Lambda) (None, 30, 30, 1088) 0 block17_12_ac[0][0]
block17_13_conv[0][0]
__________________________________________________________________________________________________
block17_13_ac (Activation) (None, 30, 30, 1088) 0 block17_13[0][0]
__________________________________________________________________________________________________
conv2d_258 (Conv2D) (None, 30, 30, 128) 139264 block17_13_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_227 (BatchN (None, 30, 30, 128) 384 conv2d_258[0][0]
__________________________________________________________________________________________________
activation_227 (Activation) (None, 30, 30, 128) 0 batch_normalization_227[0][0]
__________________________________________________________________________________________________
conv2d_259 (Conv2D) (None, 30, 30, 160) 143360 activation_227[0][0]
__________________________________________________________________________________________________
batch_normalization_228 (BatchN (None, 30, 30, 160) 480 conv2d_259[0][0]
__________________________________________________________________________________________________
activation_228 (Activation) (None, 30, 30, 160) 0 batch_normalization_228[0][0]
__________________________________________________________________________________________________
conv2d_257 (Conv2D) (None, 30, 30, 192) 208896 block17_13_ac[0][0]
__________________________________________________________________________________________________
conv2d_260 (Conv2D) (None, 30, 30, 192) 215040 activation_228[0][0]
__________________________________________________________________________________________________
batch_normalization_226 (BatchN (None, 30, 30, 192) 576 conv2d_257[0][0]
__________________________________________________________________________________________________
batch_normalization_229 (BatchN (None, 30, 30, 192) 576 conv2d_260[0][0]
__________________________________________________________________________________________________
activation_226 (Activation) (None, 30, 30, 192) 0 batch_normalization_226[0][0]
__________________________________________________________________________________________________
activation_229 (Activation) (None, 30, 30, 192) 0 batch_normalization_229[0][0]
__________________________________________________________________________________________________
block17_14_mixed (Concatenate) (None, 30, 30, 384) 0 activation_226[0][0]
activation_229[0][0]
__________________________________________________________________________________________________
block17_14_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_14_mixed[0][0]
__________________________________________________________________________________________________
block17_14 (Lambda) (None, 30, 30, 1088) 0 block17_13_ac[0][0]
block17_14_conv[0][0]
__________________________________________________________________________________________________
block17_14_ac (Activation) (None, 30, 30, 1088) 0 block17_14[0][0]
__________________________________________________________________________________________________
conv2d_262 (Conv2D) (None, 30, 30, 128) 139264 block17_14_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_231 (BatchN (None, 30, 30, 128) 384 conv2d_262[0][0]
__________________________________________________________________________________________________
activation_231 (Activation) (None, 30, 30, 128) 0 batch_normalization_231[0][0]
__________________________________________________________________________________________________
conv2d_263 (Conv2D) (None, 30, 30, 160) 143360 activation_231[0][0]
__________________________________________________________________________________________________
batch_normalization_232 (BatchN (None, 30, 30, 160) 480 conv2d_263[0][0]
__________________________________________________________________________________________________
activation_232 (Activation) (None, 30, 30, 160) 0 batch_normalization_232[0][0]
__________________________________________________________________________________________________
conv2d_261 (Conv2D) (None, 30, 30, 192) 208896 block17_14_ac[0][0]
__________________________________________________________________________________________________
conv2d_264 (Conv2D) (None, 30, 30, 192) 215040 activation_232[0][0]
__________________________________________________________________________________________________
batch_normalization_230 (BatchN (None, 30, 30, 192) 576 conv2d_261[0][0]
__________________________________________________________________________________________________
batch_normalization_233 (BatchN (None, 30, 30, 192) 576 conv2d_264[0][0]
__________________________________________________________________________________________________
activation_230 (Activation) (None, 30, 30, 192) 0 batch_normalization_230[0][0]
__________________________________________________________________________________________________
activation_233 (Activation) (None, 30, 30, 192) 0 batch_normalization_233[0][0]
__________________________________________________________________________________________________
block17_15_mixed (Concatenate) (None, 30, 30, 384) 0 activation_230[0][0]
activation_233[0][0]
__________________________________________________________________________________________________
block17_15_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_15_mixed[0][0]
__________________________________________________________________________________________________
block17_15 (Lambda) (None, 30, 30, 1088) 0 block17_14_ac[0][0]
block17_15_conv[0][0]
__________________________________________________________________________________________________
block17_15_ac (Activation) (None, 30, 30, 1088) 0 block17_15[0][0]
__________________________________________________________________________________________________
conv2d_266 (Conv2D) (None, 30, 30, 128) 139264 block17_15_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_235 (BatchN (None, 30, 30, 128) 384 conv2d_266[0][0]
__________________________________________________________________________________________________
activation_235 (Activation) (None, 30, 30, 128) 0 batch_normalization_235[0][0]
__________________________________________________________________________________________________
conv2d_267 (Conv2D) (None, 30, 30, 160) 143360 activation_235[0][0]
__________________________________________________________________________________________________
batch_normalization_236 (BatchN (None, 30, 30, 160) 480 conv2d_267[0][0]
__________________________________________________________________________________________________
activation_236 (Activation) (None, 30, 30, 160) 0 batch_normalization_236[0][0]
__________________________________________________________________________________________________
conv2d_265 (Conv2D) (None, 30, 30, 192) 208896 block17_15_ac[0][0]
__________________________________________________________________________________________________
conv2d_268 (Conv2D) (None, 30, 30, 192) 215040 activation_236[0][0]
__________________________________________________________________________________________________
batch_normalization_234 (BatchN (None, 30, 30, 192) 576 conv2d_265[0][0]
__________________________________________________________________________________________________
batch_normalization_237 (BatchN (None, 30, 30, 192) 576 conv2d_268[0][0]
__________________________________________________________________________________________________
activation_234 (Activation) (None, 30, 30, 192) 0 batch_normalization_234[0][0]
__________________________________________________________________________________________________
activation_237 (Activation) (None, 30, 30, 192) 0 batch_normalization_237[0][0]
__________________________________________________________________________________________________
block17_16_mixed (Concatenate) (None, 30, 30, 384) 0 activation_234[0][0]
activation_237[0][0]
__________________________________________________________________________________________________
block17_16_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_16_mixed[0][0]
__________________________________________________________________________________________________
block17_16 (Lambda) (None, 30, 30, 1088) 0 block17_15_ac[0][0]
block17_16_conv[0][0]
__________________________________________________________________________________________________
block17_16_ac (Activation) (None, 30, 30, 1088) 0 block17_16[0][0]
__________________________________________________________________________________________________
conv2d_270 (Conv2D) (None, 30, 30, 128) 139264 block17_16_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_239 (BatchN (None, 30, 30, 128) 384 conv2d_270[0][0]
__________________________________________________________________________________________________
activation_239 (Activation) (None, 30, 30, 128) 0 batch_normalization_239[0][0]
__________________________________________________________________________________________________
conv2d_271 (Conv2D) (None, 30, 30, 160) 143360 activation_239[0][0]
__________________________________________________________________________________________________
batch_normalization_240 (BatchN (None, 30, 30, 160) 480 conv2d_271[0][0]
__________________________________________________________________________________________________
activation_240 (Activation) (None, 30, 30, 160) 0 batch_normalization_240[0][0]
__________________________________________________________________________________________________
conv2d_269 (Conv2D) (None, 30, 30, 192) 208896 block17_16_ac[0][0]
__________________________________________________________________________________________________
conv2d_272 (Conv2D) (None, 30, 30, 192) 215040 activation_240[0][0]
__________________________________________________________________________________________________
batch_normalization_238 (BatchN (None, 30, 30, 192) 576 conv2d_269[0][0]
__________________________________________________________________________________________________
batch_normalization_241 (BatchN (None, 30, 30, 192) 576 conv2d_272[0][0]
__________________________________________________________________________________________________
activation_238 (Activation) (None, 30, 30, 192) 0 batch_normalization_238[0][0]
__________________________________________________________________________________________________
activation_241 (Activation) (None, 30, 30, 192) 0 batch_normalization_241[0][0]
__________________________________________________________________________________________________
block17_17_mixed (Concatenate) (None, 30, 30, 384) 0 activation_238[0][0]
activation_241[0][0]
__________________________________________________________________________________________________
block17_17_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_17_mixed[0][0]
__________________________________________________________________________________________________
block17_17 (Lambda) (None, 30, 30, 1088) 0 block17_16_ac[0][0]
block17_17_conv[0][0]
__________________________________________________________________________________________________
block17_17_ac (Activation) (None, 30, 30, 1088) 0 block17_17[0][0]
__________________________________________________________________________________________________
conv2d_274 (Conv2D) (None, 30, 30, 128) 139264 block17_17_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_243 (BatchN (None, 30, 30, 128) 384 conv2d_274[0][0]
__________________________________________________________________________________________________
activation_243 (Activation) (None, 30, 30, 128) 0 batch_normalization_243[0][0]
__________________________________________________________________________________________________
conv2d_275 (Conv2D) (None, 30, 30, 160) 143360 activation_243[0][0]
__________________________________________________________________________________________________
batch_normalization_244 (BatchN (None, 30, 30, 160) 480 conv2d_275[0][0]
__________________________________________________________________________________________________
activation_244 (Activation) (None, 30, 30, 160) 0 batch_normalization_244[0][0]
__________________________________________________________________________________________________
conv2d_273 (Conv2D) (None, 30, 30, 192) 208896 block17_17_ac[0][0]
__________________________________________________________________________________________________
conv2d_276 (Conv2D) (None, 30, 30, 192) 215040 activation_244[0][0]
__________________________________________________________________________________________________
batch_normalization_242 (BatchN (None, 30, 30, 192) 576 conv2d_273[0][0]
__________________________________________________________________________________________________
batch_normalization_245 (BatchN (None, 30, 30, 192) 576 conv2d_276[0][0]
__________________________________________________________________________________________________
activation_242 (Activation) (None, 30, 30, 192) 0 batch_normalization_242[0][0]
__________________________________________________________________________________________________
activation_245 (Activation) (None, 30, 30, 192) 0 batch_normalization_245[0][0]
__________________________________________________________________________________________________
block17_18_mixed (Concatenate) (None, 30, 30, 384) 0 activation_242[0][0]
activation_245[0][0]
__________________________________________________________________________________________________
block17_18_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_18_mixed[0][0]
__________________________________________________________________________________________________
block17_18 (Lambda) (None, 30, 30, 1088) 0 block17_17_ac[0][0]
block17_18_conv[0][0]
__________________________________________________________________________________________________
block17_18_ac (Activation) (None, 30, 30, 1088) 0 block17_18[0][0]
__________________________________________________________________________________________________
conv2d_278 (Conv2D) (None, 30, 30, 128) 139264 block17_18_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_247 (BatchN (None, 30, 30, 128) 384 conv2d_278[0][0]
__________________________________________________________________________________________________
activation_247 (Activation) (None, 30, 30, 128) 0 batch_normalization_247[0][0]
__________________________________________________________________________________________________
conv2d_279 (Conv2D) (None, 30, 30, 160) 143360 activation_247[0][0]
__________________________________________________________________________________________________
batch_normalization_248 (BatchN (None, 30, 30, 160) 480 conv2d_279[0][0]
__________________________________________________________________________________________________
activation_248 (Activation) (None, 30, 30, 160) 0 batch_normalization_248[0][0]
__________________________________________________________________________________________________
conv2d_277 (Conv2D) (None, 30, 30, 192) 208896 block17_18_ac[0][0]
__________________________________________________________________________________________________
conv2d_280 (Conv2D) (None, 30, 30, 192) 215040 activation_248[0][0]
__________________________________________________________________________________________________
batch_normalization_246 (BatchN (None, 30, 30, 192) 576 conv2d_277[0][0]
__________________________________________________________________________________________________
batch_normalization_249 (BatchN (None, 30, 30, 192) 576 conv2d_280[0][0]
__________________________________________________________________________________________________
activation_246 (Activation) (None, 30, 30, 192) 0 batch_normalization_246[0][0]
__________________________________________________________________________________________________
activation_249 (Activation) (None, 30, 30, 192) 0 batch_normalization_249[0][0]
__________________________________________________________________________________________________
block17_19_mixed (Concatenate) (None, 30, 30, 384) 0 activation_246[0][0]
activation_249[0][0]
__________________________________________________________________________________________________
block17_19_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_19_mixed[0][0]
__________________________________________________________________________________________________
block17_19 (Lambda) (None, 30, 30, 1088) 0 block17_18_ac[0][0]
block17_19_conv[0][0]
__________________________________________________________________________________________________
block17_19_ac (Activation) (None, 30, 30, 1088) 0 block17_19[0][0]
__________________________________________________________________________________________________
conv2d_282 (Conv2D) (None, 30, 30, 128) 139264 block17_19_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_251 (BatchN (None, 30, 30, 128) 384 conv2d_282[0][0]
__________________________________________________________________________________________________
activation_251 (Activation) (None, 30, 30, 128) 0 batch_normalization_251[0][0]
__________________________________________________________________________________________________
conv2d_283 (Conv2D) (None, 30, 30, 160) 143360 activation_251[0][0]
__________________________________________________________________________________________________
batch_normalization_252 (BatchN (None, 30, 30, 160) 480 conv2d_283[0][0]
__________________________________________________________________________________________________
activation_252 (Activation) (None, 30, 30, 160) 0 batch_normalization_252[0][0]
__________________________________________________________________________________________________
conv2d_281 (Conv2D) (None, 30, 30, 192) 208896 block17_19_ac[0][0]
__________________________________________________________________________________________________
conv2d_284 (Conv2D) (None, 30, 30, 192) 215040 activation_252[0][0]
__________________________________________________________________________________________________
batch_normalization_250 (BatchN (None, 30, 30, 192) 576 conv2d_281[0][0]
__________________________________________________________________________________________________
batch_normalization_253 (BatchN (None, 30, 30, 192) 576 conv2d_284[0][0]
__________________________________________________________________________________________________
activation_250 (Activation) (None, 30, 30, 192) 0 batch_normalization_250[0][0]
__________________________________________________________________________________________________
activation_253 (Activation) (None, 30, 30, 192) 0 batch_normalization_253[0][0]
__________________________________________________________________________________________________
block17_20_mixed (Concatenate) (None, 30, 30, 384) 0 activation_250[0][0]
activation_253[0][0]
__________________________________________________________________________________________________
block17_20_conv (Conv2D) (None, 30, 30, 1088) 418880 block17_20_mixed[0][0]
__________________________________________________________________________________________________
block17_20 (Lambda) (None, 30, 30, 1088) 0 block17_19_ac[0][0]
block17_20_conv[0][0]
__________________________________________________________________________________________________
block17_20_ac (Activation) (None, 30, 30, 1088) 0 block17_20[0][0]
__________________________________________________________________________________________________
conv2d_289 (Conv2D) (None, 30, 30, 256) 278528 block17_20_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_258 (BatchN (None, 30, 30, 256) 768 conv2d_289[0][0]
__________________________________________________________________________________________________
activation_258 (Activation) (None, 30, 30, 256) 0 batch_normalization_258[0][0]
__________________________________________________________________________________________________
conv2d_285 (Conv2D) (None, 30, 30, 256) 278528 block17_20_ac[0][0]
__________________________________________________________________________________________________
conv2d_287 (Conv2D) (None, 30, 30, 256) 278528 block17_20_ac[0][0]
__________________________________________________________________________________________________
conv2d_290 (Conv2D) (None, 30, 30, 288) 663552 activation_258[0][0]
__________________________________________________________________________________________________
batch_normalization_254 (BatchN (None, 30, 30, 256) 768 conv2d_285[0][0]
__________________________________________________________________________________________________
batch_normalization_256 (BatchN (None, 30, 30, 256) 768 conv2d_287[0][0]
__________________________________________________________________________________________________
batch_normalization_259 (BatchN (None, 30, 30, 288) 864 conv2d_290[0][0]
__________________________________________________________________________________________________
activation_254 (Activation) (None, 30, 30, 256) 0 batch_normalization_254[0][0]
__________________________________________________________________________________________________
activation_256 (Activation) (None, 30, 30, 256) 0 batch_normalization_256[0][0]
__________________________________________________________________________________________________
activation_259 (Activation) (None, 30, 30, 288) 0 batch_normalization_259[0][0]
__________________________________________________________________________________________________
conv2d_286 (Conv2D) (None, 14, 14, 384) 884736 activation_254[0][0]
__________________________________________________________________________________________________
conv2d_288 (Conv2D) (None, 14, 14, 288) 663552 activation_256[0][0]
__________________________________________________________________________________________________
conv2d_291 (Conv2D) (None, 14, 14, 320) 829440 activation_259[0][0]
__________________________________________________________________________________________________
batch_normalization_255 (BatchN (None, 14, 14, 384) 1152 conv2d_286[0][0]
__________________________________________________________________________________________________
batch_normalization_257 (BatchN (None, 14, 14, 288) 864 conv2d_288[0][0]
__________________________________________________________________________________________________
batch_normalization_260 (BatchN (None, 14, 14, 320) 960 conv2d_291[0][0]
__________________________________________________________________________________________________
activation_255 (Activation) (None, 14, 14, 384) 0 batch_normalization_255[0][0]
__________________________________________________________________________________________________
activation_257 (Activation) (None, 14, 14, 288) 0 batch_normalization_257[0][0]
__________________________________________________________________________________________________
activation_260 (Activation) (None, 14, 14, 320) 0 batch_normalization_260[0][0]
__________________________________________________________________________________________________
max_pooling2d_17 (MaxPooling2D) (None, 14, 14, 1088) 0 block17_20_ac[0][0]
__________________________________________________________________________________________________
mixed_7a (Concatenate) (None, 14, 14, 2080) 0 activation_255[0][0]
activation_257[0][0]
activation_260[0][0]
max_pooling2d_17[0][0]
__________________________________________________________________________________________________
conv2d_293 (Conv2D) (None, 14, 14, 192) 399360 mixed_7a[0][0]
__________________________________________________________________________________________________
batch_normalization_262 (BatchN (None, 14, 14, 192) 576 conv2d_293[0][0]
__________________________________________________________________________________________________
activation_262 (Activation) (None, 14, 14, 192) 0 batch_normalization_262[0][0]
__________________________________________________________________________________________________
conv2d_294 (Conv2D) (None, 14, 14, 224) 129024 activation_262[0][0]
__________________________________________________________________________________________________
batch_normalization_263 (BatchN (None, 14, 14, 224) 672 conv2d_294[0][0]
__________________________________________________________________________________________________
activation_263 (Activation) (None, 14, 14, 224) 0 batch_normalization_263[0][0]
__________________________________________________________________________________________________
conv2d_292 (Conv2D) (None, 14, 14, 192) 399360 mixed_7a[0][0]
__________________________________________________________________________________________________
conv2d_295 (Conv2D) (None, 14, 14, 256) 172032 activation_263[0][0]
__________________________________________________________________________________________________
batch_normalization_261 (BatchN (None, 14, 14, 192) 576 conv2d_292[0][0]
__________________________________________________________________________________________________
batch_normalization_264 (BatchN (None, 14, 14, 256) 768 conv2d_295[0][0]
__________________________________________________________________________________________________
activation_261 (Activation) (None, 14, 14, 192) 0 batch_normalization_261[0][0]
__________________________________________________________________________________________________
activation_264 (Activation) (None, 14, 14, 256) 0 batch_normalization_264[0][0]
__________________________________________________________________________________________________
block8_1_mixed (Concatenate) (None, 14, 14, 448) 0 activation_261[0][0]
activation_264[0][0]
__________________________________________________________________________________________________
block8_1_conv (Conv2D) (None, 14, 14, 2080) 933920 block8_1_mixed[0][0]
__________________________________________________________________________________________________
block8_1 (Lambda) (None, 14, 14, 2080) 0 mixed_7a[0][0]
block8_1_conv[0][0]
__________________________________________________________________________________________________
block8_1_ac (Activation) (None, 14, 14, 2080) 0 block8_1[0][0]
__________________________________________________________________________________________________
conv2d_297 (Conv2D) (None, 14, 14, 192) 399360 block8_1_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_266 (BatchN (None, 14, 14, 192) 576 conv2d_297[0][0]
__________________________________________________________________________________________________
activation_266 (Activation) (None, 14, 14, 192) 0 batch_normalization_266[0][0]
__________________________________________________________________________________________________
conv2d_298 (Conv2D) (None, 14, 14, 224) 129024 activation_266[0][0]
__________________________________________________________________________________________________
batch_normalization_267 (BatchN (None, 14, 14, 224) 672 conv2d_298[0][0]
__________________________________________________________________________________________________
activation_267 (Activation) (None, 14, 14, 224) 0 batch_normalization_267[0][0]
__________________________________________________________________________________________________
conv2d_296 (Conv2D) (None, 14, 14, 192) 399360 block8_1_ac[0][0]
__________________________________________________________________________________________________
conv2d_299 (Conv2D) (None, 14, 14, 256) 172032 activation_267[0][0]
__________________________________________________________________________________________________
batch_normalization_265 (BatchN (None, 14, 14, 192) 576 conv2d_296[0][0]
__________________________________________________________________________________________________
batch_normalization_268 (BatchN (None, 14, 14, 256) 768 conv2d_299[0][0]
__________________________________________________________________________________________________
activation_265 (Activation) (None, 14, 14, 192) 0 batch_normalization_265[0][0]
__________________________________________________________________________________________________
activation_268 (Activation) (None, 14, 14, 256) 0 batch_normalization_268[0][0]
__________________________________________________________________________________________________
block8_2_mixed (Concatenate) (None, 14, 14, 448) 0 activation_265[0][0]
activation_268[0][0]
__________________________________________________________________________________________________
block8_2_conv (Conv2D) (None, 14, 14, 2080) 933920 block8_2_mixed[0][0]
__________________________________________________________________________________________________
block8_2 (Lambda) (None, 14, 14, 2080) 0 block8_1_ac[0][0]
block8_2_conv[0][0]
__________________________________________________________________________________________________
block8_2_ac (Activation) (None, 14, 14, 2080) 0 block8_2[0][0]
__________________________________________________________________________________________________
conv2d_301 (Conv2D) (None, 14, 14, 192) 399360 block8_2_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_270 (BatchN (None, 14, 14, 192) 576 conv2d_301[0][0]
__________________________________________________________________________________________________
activation_270 (Activation) (None, 14, 14, 192) 0 batch_normalization_270[0][0]
__________________________________________________________________________________________________
conv2d_302 (Conv2D) (None, 14, 14, 224) 129024 activation_270[0][0]
__________________________________________________________________________________________________
batch_normalization_271 (BatchN (None, 14, 14, 224) 672 conv2d_302[0][0]
__________________________________________________________________________________________________
activation_271 (Activation) (None, 14, 14, 224) 0 batch_normalization_271[0][0]
__________________________________________________________________________________________________
conv2d_300 (Conv2D) (None, 14, 14, 192) 399360 block8_2_ac[0][0]
__________________________________________________________________________________________________
conv2d_303 (Conv2D) (None, 14, 14, 256) 172032 activation_271[0][0]
__________________________________________________________________________________________________
batch_normalization_269 (BatchN (None, 14, 14, 192) 576 conv2d_300[0][0]
__________________________________________________________________________________________________
batch_normalization_272 (BatchN (None, 14, 14, 256) 768 conv2d_303[0][0]
__________________________________________________________________________________________________
activation_269 (Activation) (None, 14, 14, 192) 0 batch_normalization_269[0][0]
__________________________________________________________________________________________________
activation_272 (Activation) (None, 14, 14, 256) 0 batch_normalization_272[0][0]
__________________________________________________________________________________________________
block8_3_mixed (Concatenate) (None, 14, 14, 448) 0 activation_269[0][0]
activation_272[0][0]
__________________________________________________________________________________________________
block8_3_conv (Conv2D) (None, 14, 14, 2080) 933920 block8_3_mixed[0][0]
__________________________________________________________________________________________________
block8_3 (Lambda) (None, 14, 14, 2080) 0 block8_2_ac[0][0]
block8_3_conv[0][0]
__________________________________________________________________________________________________
block8_3_ac (Activation) (None, 14, 14, 2080) 0 block8_3[0][0]
__________________________________________________________________________________________________
conv2d_305 (Conv2D) (None, 14, 14, 192) 399360 block8_3_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_274 (BatchN (None, 14, 14, 192) 576 conv2d_305[0][0]
__________________________________________________________________________________________________
activation_274 (Activation) (None, 14, 14, 192) 0 batch_normalization_274[0][0]
__________________________________________________________________________________________________
conv2d_306 (Conv2D) (None, 14, 14, 224) 129024 activation_274[0][0]
__________________________________________________________________________________________________
batch_normalization_275 (BatchN (None, 14, 14, 224) 672 conv2d_306[0][0]
__________________________________________________________________________________________________
activation_275 (Activation) (None, 14, 14, 224) 0 batch_normalization_275[0][0]
__________________________________________________________________________________________________
conv2d_304 (Conv2D) (None, 14, 14, 192) 399360 block8_3_ac[0][0]
__________________________________________________________________________________________________
conv2d_307 (Conv2D) (None, 14, 14, 256) 172032 activation_275[0][0]
__________________________________________________________________________________________________
batch_normalization_273 (BatchN (None, 14, 14, 192) 576 conv2d_304[0][0]
__________________________________________________________________________________________________
batch_normalization_276 (BatchN (None, 14, 14, 256) 768 conv2d_307[0][0]
__________________________________________________________________________________________________
activation_273 (Activation) (None, 14, 14, 192) 0 batch_normalization_273[0][0]
__________________________________________________________________________________________________
activation_276 (Activation) (None, 14, 14, 256) 0 batch_normalization_276[0][0]
__________________________________________________________________________________________________
block8_4_mixed (Concatenate) (None, 14, 14, 448) 0 activation_273[0][0]
activation_276[0][0]
__________________________________________________________________________________________________
block8_4_conv (Conv2D) (None, 14, 14, 2080) 933920 block8_4_mixed[0][0]
__________________________________________________________________________________________________
block8_4 (Lambda) (None, 14, 14, 2080) 0 block8_3_ac[0][0]
block8_4_conv[0][0]
__________________________________________________________________________________________________
block8_4_ac (Activation) (None, 14, 14, 2080) 0 block8_4[0][0]
__________________________________________________________________________________________________
conv2d_309 (Conv2D) (None, 14, 14, 192) 399360 block8_4_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_278 (BatchN (None, 14, 14, 192) 576 conv2d_309[0][0]
__________________________________________________________________________________________________
activation_278 (Activation) (None, 14, 14, 192) 0 batch_normalization_278[0][0]
__________________________________________________________________________________________________
conv2d_310 (Conv2D) (None, 14, 14, 224) 129024 activation_278[0][0]
__________________________________________________________________________________________________
batch_normalization_279 (BatchN (None, 14, 14, 224) 672 conv2d_310[0][0]
__________________________________________________________________________________________________
activation_279 (Activation) (None, 14, 14, 224) 0 batch_normalization_279[0][0]
__________________________________________________________________________________________________
conv2d_308 (Conv2D) (None, 14, 14, 192) 399360 block8_4_ac[0][0]
__________________________________________________________________________________________________
conv2d_311 (Conv2D) (None, 14, 14, 256) 172032 activation_279[0][0]
__________________________________________________________________________________________________
batch_normalization_277 (BatchN (None, 14, 14, 192) 576 conv2d_308[0][0]
__________________________________________________________________________________________________
batch_normalization_280 (BatchN (None, 14, 14, 256) 768 conv2d_311[0][0]
__________________________________________________________________________________________________
activation_277 (Activation) (None, 14, 14, 192) 0 batch_normalization_277[0][0]
__________________________________________________________________________________________________
activation_280 (Activation) (None, 14, 14, 256) 0 batch_normalization_280[0][0]
__________________________________________________________________________________________________
block8_5_mixed (Concatenate) (None, 14, 14, 448) 0 activation_277[0][0]
activation_280[0][0]
__________________________________________________________________________________________________
block8_5_conv (Conv2D) (None, 14, 14, 2080) 933920 block8_5_mixed[0][0]
__________________________________________________________________________________________________
block8_5 (Lambda) (None, 14, 14, 2080) 0 block8_4_ac[0][0]
block8_5_conv[0][0]
__________________________________________________________________________________________________
block8_5_ac (Activation) (None, 14, 14, 2080) 0 block8_5[0][0]
__________________________________________________________________________________________________
conv2d_313 (Conv2D) (None, 14, 14, 192) 399360 block8_5_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_282 (BatchN (None, 14, 14, 192) 576 conv2d_313[0][0]
__________________________________________________________________________________________________
activation_282 (Activation) (None, 14, 14, 192) 0 batch_normalization_282[0][0]
__________________________________________________________________________________________________
conv2d_314 (Conv2D) (None, 14, 14, 224) 129024 activation_282[0][0]
__________________________________________________________________________________________________
batch_normalization_283 (BatchN (None, 14, 14, 224) 672 conv2d_314[0][0]
__________________________________________________________________________________________________
activation_283 (Activation) (None, 14, 14, 224) 0 batch_normalization_283[0][0]
__________________________________________________________________________________________________
conv2d_312 (Conv2D) (None, 14, 14, 192) 399360 block8_5_ac[0][0]
__________________________________________________________________________________________________
conv2d_315 (Conv2D) (None, 14, 14, 256) 172032 activation_283[0][0]
__________________________________________________________________________________________________
batch_normalization_281 (BatchN (None, 14, 14, 192) 576 conv2d_312[0][0]
__________________________________________________________________________________________________
batch_normalization_284 (BatchN (None, 14, 14, 256) 768 conv2d_315[0][0]
__________________________________________________________________________________________________
activation_281 (Activation) (None, 14, 14, 192) 0 batch_normalization_281[0][0]
__________________________________________________________________________________________________
activation_284 (Activation) (None, 14, 14, 256) 0 batch_normalization_284[0][0]
__________________________________________________________________________________________________
block8_6_mixed (Concatenate) (None, 14, 14, 448) 0 activation_281[0][0]
activation_284[0][0]
__________________________________________________________________________________________________
block8_6_conv (Conv2D) (None, 14, 14, 2080) 933920 block8_6_mixed[0][0]
__________________________________________________________________________________________________
block8_6 (Lambda) (None, 14, 14, 2080) 0 block8_5_ac[0][0]
block8_6_conv[0][0]
__________________________________________________________________________________________________
block8_6_ac (Activation) (None, 14, 14, 2080) 0 block8_6[0][0]
__________________________________________________________________________________________________
conv2d_317 (Conv2D) (None, 14, 14, 192) 399360 block8_6_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_286 (BatchN (None, 14, 14, 192) 576 conv2d_317[0][0]
__________________________________________________________________________________________________
activation_286 (Activation) (None, 14, 14, 192) 0 batch_normalization_286[0][0]
__________________________________________________________________________________________________
conv2d_318 (Conv2D) (None, 14, 14, 224) 129024 activation_286[0][0]
__________________________________________________________________________________________________
batch_normalization_287 (BatchN (None, 14, 14, 224) 672 conv2d_318[0][0]
__________________________________________________________________________________________________
activation_287 (Activation) (None, 14, 14, 224) 0 batch_normalization_287[0][0]
__________________________________________________________________________________________________
conv2d_316 (Conv2D) (None, 14, 14, 192) 399360 block8_6_ac[0][0]
__________________________________________________________________________________________________
conv2d_319 (Conv2D) (None, 14, 14, 256) 172032 activation_287[0][0]
__________________________________________________________________________________________________
batch_normalization_285 (BatchN (None, 14, 14, 192) 576 conv2d_316[0][0]
__________________________________________________________________________________________________
batch_normalization_288 (BatchN (None, 14, 14, 256) 768 conv2d_319[0][0]
__________________________________________________________________________________________________
activation_285 (Activation) (None, 14, 14, 192) 0 batch_normalization_285[0][0]
__________________________________________________________________________________________________
activation_288 (Activation) (None, 14, 14, 256) 0 batch_normalization_288[0][0]
__________________________________________________________________________________________________
block8_7_mixed (Concatenate) (None, 14, 14, 448) 0 activation_285[0][0]
activation_288[0][0]
__________________________________________________________________________________________________
block8_7_conv (Conv2D) (None, 14, 14, 2080) 933920 block8_7_mixed[0][0]
__________________________________________________________________________________________________
block8_7 (Lambda) (None, 14, 14, 2080) 0 block8_6_ac[0][0]
block8_7_conv[0][0]
__________________________________________________________________________________________________
block8_7_ac (Activation) (None, 14, 14, 2080) 0 block8_7[0][0]
__________________________________________________________________________________________________
conv2d_321 (Conv2D) (None, 14, 14, 192) 399360 block8_7_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_290 (BatchN (None, 14, 14, 192) 576 conv2d_321[0][0]
__________________________________________________________________________________________________
activation_290 (Activation) (None, 14, 14, 192) 0 batch_normalization_290[0][0]
__________________________________________________________________________________________________
conv2d_322 (Conv2D) (None, 14, 14, 224) 129024 activation_290[0][0]
__________________________________________________________________________________________________
batch_normalization_291 (BatchN (None, 14, 14, 224) 672 conv2d_322[0][0]
__________________________________________________________________________________________________
activation_291 (Activation) (None, 14, 14, 224) 0 batch_normalization_291[0][0]
__________________________________________________________________________________________________
conv2d_320 (Conv2D) (None, 14, 14, 192) 399360 block8_7_ac[0][0]
__________________________________________________________________________________________________
conv2d_323 (Conv2D) (None, 14, 14, 256) 172032 activation_291[0][0]
__________________________________________________________________________________________________
batch_normalization_289 (BatchN (None, 14, 14, 192) 576 conv2d_320[0][0]
__________________________________________________________________________________________________
batch_normalization_292 (BatchN (None, 14, 14, 256) 768 conv2d_323[0][0]
__________________________________________________________________________________________________
activation_289 (Activation) (None, 14, 14, 192) 0 batch_normalization_289[0][0]
__________________________________________________________________________________________________
activation_292 (Activation) (None, 14, 14, 256) 0 batch_normalization_292[0][0]
__________________________________________________________________________________________________
block8_8_mixed (Concatenate) (None, 14, 14, 448) 0 activation_289[0][0]
activation_292[0][0]
__________________________________________________________________________________________________
block8_8_conv (Conv2D) (None, 14, 14, 2080) 933920 block8_8_mixed[0][0]
__________________________________________________________________________________________________
block8_8 (Lambda) (None, 14, 14, 2080) 0 block8_7_ac[0][0]
block8_8_conv[0][0]
__________________________________________________________________________________________________
block8_8_ac (Activation) (None, 14, 14, 2080) 0 block8_8[0][0]
__________________________________________________________________________________________________
conv2d_325 (Conv2D) (None, 14, 14, 192) 399360 block8_8_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_294 (BatchN (None, 14, 14, 192) 576 conv2d_325[0][0]
__________________________________________________________________________________________________
activation_294 (Activation) (None, 14, 14, 192) 0 batch_normalization_294[0][0]
__________________________________________________________________________________________________
conv2d_326 (Conv2D) (None, 14, 14, 224) 129024 activation_294[0][0]
__________________________________________________________________________________________________
batch_normalization_295 (BatchN (None, 14, 14, 224) 672 conv2d_326[0][0]
__________________________________________________________________________________________________
activation_295 (Activation) (None, 14, 14, 224) 0 batch_normalization_295[0][0]
__________________________________________________________________________________________________
conv2d_324 (Conv2D) (None, 14, 14, 192) 399360 block8_8_ac[0][0]
__________________________________________________________________________________________________
conv2d_327 (Conv2D) (None, 14, 14, 256) 172032 activation_295[0][0]
__________________________________________________________________________________________________
batch_normalization_293 (BatchN (None, 14, 14, 192) 576 conv2d_324[0][0]
__________________________________________________________________________________________________
batch_normalization_296 (BatchN (None, 14, 14, 256) 768 conv2d_327[0][0]
__________________________________________________________________________________________________
activation_293 (Activation) (None, 14, 14, 192) 0 batch_normalization_293[0][0]
__________________________________________________________________________________________________
activation_296 (Activation) (None, 14, 14, 256) 0 batch_normalization_296[0][0]
__________________________________________________________________________________________________
block8_9_mixed (Concatenate) (None, 14, 14, 448) 0 activation_293[0][0]
activation_296[0][0]
__________________________________________________________________________________________________
block8_9_conv (Conv2D) (None, 14, 14, 2080) 933920 block8_9_mixed[0][0]
__________________________________________________________________________________________________
block8_9 (Lambda) (None, 14, 14, 2080) 0 block8_8_ac[0][0]
block8_9_conv[0][0]
__________________________________________________________________________________________________
block8_9_ac (Activation) (None, 14, 14, 2080) 0 block8_9[0][0]
__________________________________________________________________________________________________
conv2d_329 (Conv2D) (None, 14, 14, 192) 399360 block8_9_ac[0][0]
__________________________________________________________________________________________________
batch_normalization_298 (BatchN (None, 14, 14, 192) 576 conv2d_329[0][0]
__________________________________________________________________________________________________
activation_298 (Activation) (None, 14, 14, 192) 0 batch_normalization_298[0][0]
__________________________________________________________________________________________________
conv2d_330 (Conv2D) (None, 14, 14, 224) 129024 activation_298[0][0]
__________________________________________________________________________________________________
batch_normalization_299 (BatchN (None, 14, 14, 224) 672 conv2d_330[0][0]
__________________________________________________________________________________________________
activation_299 (Activation) (None, 14, 14, 224) 0 batch_normalization_299[0][0]
__________________________________________________________________________________________________
conv2d_328 (Conv2D) (None, 14, 14, 192) 399360 block8_9_ac[0][0]
__________________________________________________________________________________________________
conv2d_331 (Conv2D) (None, 14, 14, 256) 172032 activation_299[0][0]
__________________________________________________________________________________________________
batch_normalization_297 (BatchN (None, 14, 14, 192) 576 conv2d_328[0][0]
__________________________________________________________________________________________________
batch_normalization_300 (BatchN (None, 14, 14, 256) 768 conv2d_331[0][0]
__________________________________________________________________________________________________
activation_297 (Activation) (None, 14, 14, 192) 0 batch_normalization_297[0][0]
__________________________________________________________________________________________________
activation_300 (Activation) (None, 14, 14, 256) 0 batch_normalization_300[0][0]
__________________________________________________________________________________________________
block8_10_mixed (Concatenate) (None, 14, 14, 448) 0 activation_297[0][0]
activation_300[0][0]
__________________________________________________________________________________________________
block8_10_conv (Conv2D) (None, 14, 14, 2080) 933920 block8_10_mixed[0][0]
__________________________________________________________________________________________________
block8_10 (Lambda) (None, 14, 14, 2080) 0 block8_9_ac[0][0]
block8_10_conv[0][0]
__________________________________________________________________________________________________
conv_7b (Conv2D) (None, 14, 14, 1536) 3194880 block8_10[0][0]
__________________________________________________________________________________________________
conv_7b_bn (BatchNormalization) (None, 14, 14, 1536) 4608 conv_7b[0][0]
__________________________________________________________________________________________________
conv_7b_ac (Activation) (None, 14, 14, 1536) 0 conv_7b_bn[0][0]
__________________________________________________________________________________________________
global_average_pooling2d_3 (Glo (None, 1536) 0 conv_7b_ac[0][0]
__________________________________________________________________________________________________
dense_12 (Dense) (None, 516) 793092 global_average_pooling2d_3[0][0]
__________________________________________________________________________________________________
dropout_6 (Dropout) (None, 516) 0 dense_12[0][0]
__________________________________________________________________________________________________
dense_13 (Dense) (None, 256) 132352 dropout_6[0][0]
__________________________________________________________________________________________________
dropout_7 (Dropout) (None, 256) 0 dense_13[0][0]
__________________________________________________________________________________________________
dense_14 (Dense) (None, 64) 16448 dropout_7[0][0]
__________________________________________________________________________________________________
dense_15 (Dense) (None, 2) 130 dense_14[0][0]
==================================================================================================
Total params: 55,278,758
Trainable params: 13,383,078
Non-trainable params: 41,895,680
__________________________________________________________________________________________________
None
# Define modifier to replace the sigmoid function of the last layer to a linear function
def model_modifier(m):
m.layers[-1].activation = tf.keras.activations.linear
# Define losses functions. 0 is the index for a normal MRI
loss_normal = lambda output: K.mean(output[:, 0])
# Define losses functions. 1 is the index for a diffuse malformation of cortical development MRI
loss_diffuseMCD = lambda output: K.mean(output[:, 1])
# Create Gradcam object
gradcam = Gradcam(model, model_modifier)
# Create Saliency object
saliency = Saliency(model, model_modifier)
# Iterate through the MRIs in test set
# Set background to white color
plt.rcParams['axes.facecolor']='white'
plt.rcParams['figure.facecolor']='white'
plt.rcParams['figure.edgecolor']='white'
print('\n \n' + '\033[1m' + 'EACH ORIGINAL MRI IS ANALYZED WITH TWO METHODS: CLASS ACTIVATION MAP (UPPER ROW) AND SALIENCY MAP (LOWER ROW)' + '\033[0m' + '\n')
print('\033[1m' + 'EACH MAP IS SUPERIMPOSED ON THE ORIGINAL MRI WITH A TRANSPARENCY THAT IS INVERSELY PROPORTIONAL TO THE ESTIMATED PROBABILITY OF THE MRI BELONGING TO THAT CATEGORY (NORMAL MRI, DIFFUSE CORTICAL MALFORMATION) \n \nHIGHER ESTIMATED PROBABILITIES PRODUCE CLEARLY SEEN MAPS OVERLAID ON THE ORIGINAL MRI AND LOWER ESTIMATED PROBABILITIES PRODUCE VERY TRANSPARENT OR NOT APPRECIABLE MAPS OVERLAID ON THE ORIGINAL MRI' + '\033[0m'+ '\n')
for i in range(20):
# Print spaces to separate from the next image
print('\n \n \n \n \n \n')
# Print real classification of the image
if y_true[i]==0:
real_classification='Normal MRI'
elif y_true[i]==1:
real_classification='Diffuse MCD'
print('\033[1m' + 'REAL CLASSIFICATION OF THE IMAGE: {}'.format(real_classification) + '\033[0m')
# Print model classification and model probability of MCD
if y_predInceptionResNetV2[i]==0:
predicted_classification='Normal MRI'
elif y_predInceptionResNetV2[i]==1:
predicted_classification='Diffuse MCD'
print('\033[1m' + 'MODEL CLASSIFICATION OF THE IMAGE: {}'.format(predicted_classification) + '\033[0m \n')
print('\033[1m' + ' Prob. Normal MRI: {:.4f} '.format(valInceptionResNetV2[i][0]) + 'Prob. Diffuse MCD: {:.4f} '.format(valInceptionResNetV2[i][1]) + '\033[0m')
# Arrays to plot
original_image=shuffled_val_X[i]
list_heatmaps=[
# GradCam heatmap for normal MRI
normalize(gradcam(loss_normal, shuffled_val_X[i])),
# GradCam heatmap for diffuse MCD
normalize(gradcam(loss_diffuseMCD, shuffled_val_X[i])),
# Saliency heatmap for normal MRI
normalize(saliency(loss_normal, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2)),
# Saliency heatmap for diffuse MCD
normalize(saliency(loss_diffuseMCD, seed_input=np.expand_dims(shuffled_val_X[i], axis=0), smooth_noise=0.2))
]
# Define figure
f=plt.figure(figsize=(20, 8))
# Define the image grid
grid = ImageGrid(f, 111,
nrows_ncols=(2, 2),
axes_pad=0.05,
share_all=True,
cbar_location="right",
cbar_mode=None,
cbar_size="2%",
cbar_pad=0.15)
# Iterate over the graphs
for j, axis in enumerate(grid):
# Plot original
im=axis.imshow(original_image)
im=axis.imshow(list_heatmaps[j][0], cmap='jet', alpha=0.5*valInceptionResNetV2[i][j%2])
im=axis.set_xticks([])
im=axis.set_yticks([])
# Create scalarmappable for obtaining the colorbar from 0 to 1
sm = plt.cm.ScalarMappable(cmap='jet', norm=plt.Normalize(vmin=0, vmax=1))
plt.colorbar(sm)
plt.show()
EACH ORIGINAL MRI IS ANALYZED WITH TWO METHODS: CLASS ACTIVATION MAP (UPPER ROW) AND SALIENCY MAP (LOWER ROW) EACH MAP IS SUPERIMPOSED ON THE ORIGINAL MRI WITH A TRANSPARENCY THAT IS INVERSELY PROPORTIONAL TO THE ESTIMATED PROBABILITY OF THE MRI BELONGING TO THAT CATEGORY (NORMAL MRI, DIFFUSE CORTICAL MALFORMATION) HIGHER ESTIMATED PROBABILITIES PRODUCE CLEARLY SEEN MAPS OVERLAID ON THE ORIGINAL MRI AND LOWER ESTIMATED PROBABILITIES PRODUCE VERY TRANSPARENT OR NOT APPRECIABLE MAPS OVERLAID ON THE ORIGINAL MRI REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9846 Prob. Diffuse MCD: 0.0154
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0001 Prob. Diffuse MCD: 0.9999
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.3473 Prob. Diffuse MCD: 0.6527
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9991 Prob. Diffuse MCD: 0.0009
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 0.9985 Prob. Diffuse MCD: 0.0015
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0123 Prob. Diffuse MCD: 0.9877
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000
REAL CLASSIFICATION OF THE IMAGE: Normal MRI MODEL CLASSIFICATION OF THE IMAGE: Normal MRI Prob. Normal MRI: 1.0000 Prob. Diffuse MCD: 0.0000
REAL CLASSIFICATION OF THE IMAGE: Diffuse MCD MODEL CLASSIFICATION OF THE IMAGE: Diffuse MCD Prob. Normal MRI: 0.0000 Prob. Diffuse MCD: 1.0000